/*[
 * Generated File: sas4gen.h
 *
]*/

#ifndef _SAS4GEN_H_
#define _SAS4GEN_H_
typedef	IU32	TYPE_sas_memory_size	IPT0();
typedef	void	TYPE_sas_connect_memory	IPT3(IU32,	lo_addr, IU32,	Int_addr, SAS_MEM_TYPE,	type);
typedef	void	TYPE_sas_enable_20_bit_wrapping	IPT0();
typedef	void	TYPE_sas_disable_20_bit_wrapping	IPT0();
typedef	IBOOL	TYPE_sas_twenty_bit_wrapping_enabled	IPT0();
typedef	SAS_MEM_TYPE	TYPE_sas_memory_type	IPT1(IU32,	addr);
typedef	IU8	TYPE_sas_hw_at	IPT1(IU32,	addr);
typedef	IU16	TYPE_sas_w_at	IPT1(IU32,	addr);
typedef	IU32	TYPE_sas_dw_at	IPT1(IU32,	addr);
typedef	IU8	TYPE_sas_hw_at_no_check	IPT1(IU32,	addr);
typedef	IU16	TYPE_sas_w_at_no_check	IPT1(IU32,	addr);
typedef	IU32	TYPE_sas_dw_at_no_check	IPT1(IU32,	addr);
typedef	void	TYPE_sas_store	IPT2(IU32,	addr, IU8,	val);
typedef	void	TYPE_sas_storew	IPT2(IU32,	addr, IU16,	val);
typedef	void	TYPE_sas_storedw	IPT2(IU32,	addr, IU32,	val);
typedef	void	TYPE_sas_store_no_check	IPT2(IU32,	addr, IU8,	val);
typedef	void	TYPE_sas_storew_no_check	IPT2(IU32,	addr, IU16,	val);
typedef	void	TYPE_sas_storedw_no_check	IPT2(IU32,	addr, IU32,	val);
typedef	void	TYPE_sas_loads	IPT3(IU32,	addr, IU8 *,	stringptr, IU32,	len);
typedef	void	TYPE_sas_stores	IPT3(IU32,	addr, IU8 *,	stringptr, IU32,	len);
typedef	void	TYPE_sas_loads_no_check	IPT3(IU32,	addr, IU8 *,	stringptr, IU32,	len);
typedef	void	TYPE_sas_stores_no_check	IPT3(IU32,	addr, IU8 *,	stringptr, IU32,	len);
typedef	void	TYPE_sas_move_bytes_forward	IPT3(IU32,	src, IU32,	dest, IU32,	len);
typedef	void	TYPE_sas_move_words_forward	IPT3(IU32,	src, IU32,	dest, IU32,	len);
typedef	void	TYPE_sas_move_doubles_forward	IPT3(IU32,	src, IU32,	dest, IU32,	len);
typedef	void	TYPE_sas_fills	IPT3(IU32,	dest, IU8,	val, IU32,	len);
typedef	void	TYPE_sas_fillsw	IPT3(IU32,	dest, IU16,	val, IU32,	len);
typedef	void	TYPE_sas_fillsdw	IPT3(IU32,	dest, IU32,	val, IU32,	len);
typedef	IU8 *	TYPE_sas_scratch_address	IPT1(IU32,	length);
typedef	IU8 *	TYPE_sas_transbuf_address	IPT2(IU32,	dest_addr, IU32,	length);
typedef	void	TYPE_sas_loads_to_transbuf	IPT3(IU32,	src_addr, IU8 *,	dest_addr, IU32,	length);
typedef	void	TYPE_sas_stores_from_transbuf	IPT3(IU32,	dest_addr, IU8 *,	src_addr, IU32,	length);
typedef	IU8	TYPE_sas_PR8	IPT1(IU32,	addr);
typedef	IU16	TYPE_sas_PR16	IPT1(IU32,	addr);
typedef	IU32	TYPE_sas_PR32	IPT1(IU32,	addr);
typedef	void	TYPE_sas_PW8	IPT2(IU32,	addr, IU8,	val);
typedef	void	TYPE_sas_PW16	IPT2(IU32,	addr, IU16,	val);
typedef	void	TYPE_sas_PW32	IPT2(IU32,	addr, IU32,	val);
typedef	void	TYPE_sas_PW8_no_check	IPT2(IU32,	addr, IU8,	val);
typedef	void	TYPE_sas_PW16_no_check	IPT2(IU32,	addr, IU16,	val);
typedef	void	TYPE_sas_PW32_no_check	IPT2(IU32,	addr, IU32,	val);
typedef	IU8 *	TYPE_getPtrToPhysAddrByte	IPT1(IU32,	phys_addr);
typedef	IU8 *	TYPE_get_byte_addr	IPT1(IU32,	phys_addr);
typedef	IU8 *	TYPE_getPtrToLinAddrByte	IPT1(IU32,	lin_addr);
typedef	IBOOL	TYPE_sas_init_pm_selectors	IPT2(IU16,	sel1, IU16,	sel2);
typedef	void	TYPE_sas_overwrite_memory	IPT2(IU32,	addr, IU32,	length);
typedef	void	TYPE_sas_PWS	IPT3(IU32,	dest, IU8 *,	src, IU32,	len);
typedef	void	TYPE_sas_PWS_no_check	IPT3(IU32,	dest, IU8 *,	src, IU32,	len);
typedef	void	TYPE_sas_PRS	IPT3(IU32,	src, IU8 *,	dest, IU32,	len);
typedef	void	TYPE_sas_PRS_no_check	IPT3(IU32,	src, IU8 *,	dest, IU32,	len);
typedef	IBOOL	TYPE_sas_PigCmpPage	IPT3(IU32,	src, IU8 *,	dest, IU32,	len);
typedef	IU8 *	TYPE_sas_touch	IPT2(IU32,	addr, IU32,	length);
typedef	IBOOL	TYPE_IOVirtualised	IPT4(IU16,	port, IU32 *,	value, IU32,	offset, IU8,	width);
typedef	IU32	TYPE_VirtualiseInstruction	IPT4(IU32,	eipInRom, IUH,	size, IU32,	linearAddrOrPort, IU32,	dataIn);
typedef	IBOOL	TYPE_IsPageInstanceData	IPT1(IU32,	physAddr);

struct	SasVector	{
	IU32	(*Sas_memory_size)	IPT0();
	void	(*Sas_connect_memory)	IPT3(IU32,	lo_addr, IU32,	Int_addr, SAS_MEM_TYPE,	type);
	void	(*Sas_enable_20_bit_wrapping)	IPT0();
	void	(*Sas_disable_20_bit_wrapping)	IPT0();
	IBOOL	(*Sas_twenty_bit_wrapping_enabled)	IPT0();
	SAS_MEM_TYPE	(*Sas_memory_type)	IPT1(IU32,	addr);
	IU8	(*Sas_hw_at)	IPT1(IU32,	addr);
	IU16	(*Sas_w_at)	IPT1(IU32,	addr);
	IU32	(*Sas_dw_at)	IPT1(IU32,	addr);
	IU8	(*Sas_hw_at_no_check)	IPT1(IU32,	addr);
	IU16	(*Sas_w_at_no_check)	IPT1(IU32,	addr);
	IU32	(*Sas_dw_at_no_check)	IPT1(IU32,	addr);
	void	(*Sas_store)	IPT2(IU32,	addr, IU8,	val);
	void	(*Sas_storew)	IPT2(IU32,	addr, IU16,	val);
	void	(*Sas_storedw)	IPT2(IU32,	addr, IU32,	val);
	void	(*Sas_store_no_check)	IPT2(IU32,	addr, IU8,	val);
	void	(*Sas_storew_no_check)	IPT2(IU32,	addr, IU16,	val);
	void	(*Sas_storedw_no_check)	IPT2(IU32,	addr, IU32,	val);
	void	(*Sas_loads)	IPT3(IU32,	addr, IU8 *,	stringptr, IU32,	len);
	void	(*Sas_stores)	IPT3(IU32,	addr, IU8 *,	stringptr, IU32,	len);
	void	(*Sas_loads_no_check)	IPT3(IU32,	addr, IU8 *,	stringptr, IU32,	len);
	void	(*Sas_stores_no_check)	IPT3(IU32,	addr, IU8 *,	stringptr, IU32,	len);
	void	(*Sas_move_bytes_forward)	IPT3(IU32,	src, IU32,	dest, IU32,	len);
	void	(*Sas_move_words_forward)	IPT3(IU32,	src, IU32,	dest, IU32,	len);
	void	(*Sas_move_doubles_forward)	IPT3(IU32,	src, IU32,	dest, IU32,	len);
	void	(*Sas_fills)	IPT3(IU32,	dest, IU8,	val, IU32,	len);
	void	(*Sas_fillsw)	IPT3(IU32,	dest, IU16,	val, IU32,	len);
	void	(*Sas_fillsdw)	IPT3(IU32,	dest, IU32,	val, IU32,	len);
	IU8 *	(*Sas_scratch_address)	IPT1(IU32,	length);
	IU8 *	(*Sas_transbuf_address)	IPT2(IU32,	dest_addr, IU32,	length);
	void	(*Sas_loads_to_transbuf)	IPT3(IU32,	src_addr, IU8 *,	dest_addr, IU32,	length);
	void	(*Sas_stores_from_transbuf)	IPT3(IU32,	dest_addr, IU8 *,	src_addr, IU32,	length);
	IU8	(*Sas_PR8)	IPT1(IU32,	addr);
	IU16	(*Sas_PR16)	IPT1(IU32,	addr);
	IU32	(*Sas_PR32)	IPT1(IU32,	addr);
	void	(*Sas_PW8)	IPT2(IU32,	addr, IU8,	val);
	void	(*Sas_PW16)	IPT2(IU32,	addr, IU16,	val);
	void	(*Sas_PW32)	IPT2(IU32,	addr, IU32,	val);
	void	(*Sas_PW8_no_check)	IPT2(IU32,	addr, IU8,	val);
	void	(*Sas_PW16_no_check)	IPT2(IU32,	addr, IU16,	val);
	void	(*Sas_PW32_no_check)	IPT2(IU32,	addr, IU32,	val);
	IU8 *	(*SasPtrToPhysAddrByte)	IPT1(IU32,	phys_addr);
	IU8 *	(*Sas_get_byte_addr)	IPT1(IU32,	phys_addr);
	IU8 *	(*SasPtrToLinAddrByte)	IPT1(IU32,	lin_addr);
	IBOOL	(*SasRegisterVirtualSelectors)	IPT2(IU16,	sel1, IU16,	sel2);
	void	(*Sas_overwrite_memory)	IPT2(IU32,	addr, IU32,	length);
	void	(*Sas_PWS)	IPT3(IU32,	dest, IU8 *,	src, IU32,	len);
	void	(*Sas_PWS_no_check)	IPT3(IU32,	dest, IU8 *,	src, IU32,	len);
	void	(*Sas_PRS)	IPT3(IU32,	src, IU8 *,	dest, IU32,	len);
	void	(*Sas_PRS_no_check)	IPT3(IU32,	src, IU8 *,	dest, IU32,	len);
	IBOOL	(*Sas_PigCmpPage)	IPT3(IU32,	src, IU8 *,	dest, IU32,	len);
	IU8 *	(*Sas_touch)	IPT2(IU32,	addr, IU32,	length);
	IBOOL	(*IOVirtualised)	IPT4(IU16,	port, IU32 *,	value, IU32,	offset, IU8,	width);
	IU32	(*SasVirtualiseInstruction)	IPT4(IU32,	eipInRom, IUH,	size, IU32,	linearAddrOrPort, IU32,	dataIn);
	IBOOL	(*IsPageInstanceData)	IPT1(IU32,	physAddr);
};

extern	struct	SasVector	Sas;

#ifdef	CCPU
IMPORT	IU32	c_sas_memory_size	IPT0();
#define	sas_memory_size()	c_sas_memory_size()
#else	/* CCPU */

#ifdef PROD
#define	sas_memory_size()	(*(Sas.Sas_memory_size))()
#else /* PROD */
IMPORT	IU32	sas_memory_size	IPT0();
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_connect_memory	IPT3(IU32, lo_addr, IU32, Int_addr, SAS_MEM_TYPE, type);
#define	sas_connect_memory(lo_addr, Int_addr, type)	c_sas_connect_memory(lo_addr, Int_addr, type)
#else	/* CCPU */

#ifdef PROD
#define	sas_connect_memory(lo_addr, Int_addr, type)	(*(Sas.Sas_connect_memory))(lo_addr, Int_addr, type)
#else /* PROD */
IMPORT	void	sas_connect_memory	IPT3(IU32, lo_addr, IU32, Int_addr, SAS_MEM_TYPE, type);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_enable_20_bit_wrapping	IPT0();
#define	sas_enable_20_bit_wrapping()	c_sas_enable_20_bit_wrapping()
#else	/* CCPU */

#ifdef PROD
#define	sas_enable_20_bit_wrapping()	(*(Sas.Sas_enable_20_bit_wrapping))()
#else /* PROD */
IMPORT	void	sas_enable_20_bit_wrapping	IPT0();
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_disable_20_bit_wrapping	IPT0();
#define	sas_disable_20_bit_wrapping()	c_sas_disable_20_bit_wrapping()
#else	/* CCPU */

#ifdef PROD
#define	sas_disable_20_bit_wrapping()	(*(Sas.Sas_disable_20_bit_wrapping))()
#else /* PROD */
IMPORT	void	sas_disable_20_bit_wrapping	IPT0();
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IBOOL	c_sas_twenty_bit_wrapping_enabled	IPT0();
#define	sas_twenty_bit_wrapping_enabled()	c_sas_twenty_bit_wrapping_enabled()
#else	/* CCPU */

#ifdef PROD
#define	sas_twenty_bit_wrapping_enabled()	(*(Sas.Sas_twenty_bit_wrapping_enabled))()
#else /* PROD */
IMPORT	IBOOL	sas_twenty_bit_wrapping_enabled	IPT0();
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	SAS_MEM_TYPE	c_sas_memory_type	IPT1(IU32, addr);
#define	sas_memory_type(addr)	c_sas_memory_type(addr)
#else	/* CCPU */

#ifdef PROD
#define	sas_memory_type(addr)	(*(Sas.Sas_memory_type))(addr)
#else /* PROD */
IMPORT	SAS_MEM_TYPE	sas_memory_type	IPT1(IU32, addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU8	c_sas_hw_at	IPT1(IU32, addr);
#define	sas_hw_at(addr)	c_sas_hw_at(addr)
#else	/* CCPU */

#ifdef PROD
#define	sas_hw_at(addr)	(*(Sas.Sas_hw_at))(addr)
#else /* PROD */
IMPORT	IU8	sas_hw_at	IPT1(IU32, addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU16	c_sas_w_at	IPT1(IU32, addr);
#define	sas_w_at(addr)	c_sas_w_at(addr)
#else	/* CCPU */

#ifdef PROD
#define	sas_w_at(addr)	(*(Sas.Sas_w_at))(addr)
#else /* PROD */
IMPORT	IU16	sas_w_at	IPT1(IU32, addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU32	c_sas_dw_at	IPT1(IU32, addr);
#define	sas_dw_at(addr)	c_sas_dw_at(addr)
#else	/* CCPU */

#ifdef PROD
#define	sas_dw_at(addr)	(*(Sas.Sas_dw_at))(addr)
#else /* PROD */
IMPORT	IU32	sas_dw_at	IPT1(IU32, addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU8	c_sas_hw_at	IPT1(IU32, addr);
#define	sas_hw_at_no_check(addr)	c_sas_hw_at(addr)
#else	/* CCPU */

#ifdef PROD
#define	sas_hw_at_no_check(addr)	(*(Sas.Sas_hw_at_no_check))(addr)
#else /* PROD */
IMPORT	IU8	sas_hw_at_no_check	IPT1(IU32, addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU16	c_sas_w_at	IPT1(IU32, addr);
#define	sas_w_at_no_check(addr)	c_sas_w_at(addr)
#else	/* CCPU */

#ifdef PROD
#define	sas_w_at_no_check(addr)	(*(Sas.Sas_w_at_no_check))(addr)
#else /* PROD */
IMPORT	IU16	sas_w_at_no_check	IPT1(IU32, addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU32	c_sas_dw_at	IPT1(IU32, addr);
#define	sas_dw_at_no_check(addr)	c_sas_dw_at(addr)
#else	/* CCPU */

#ifdef PROD
#define	sas_dw_at_no_check(addr)	(*(Sas.Sas_dw_at_no_check))(addr)
#else /* PROD */
IMPORT	IU32	sas_dw_at_no_check	IPT1(IU32, addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_store	IPT2(IU32, addr, IU8, val);
#define	sas_store(addr, val)	c_sas_store(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_store(addr, val)	(*(Sas.Sas_store))(addr, val)
#else /* PROD */
IMPORT	void	sas_store	IPT2(IU32, addr, IU8, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_storew	IPT2(IU32, addr, IU16, val);
#define	sas_storew(addr, val)	c_sas_storew(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_storew(addr, val)	(*(Sas.Sas_storew))(addr, val)
#else /* PROD */
IMPORT	void	sas_storew	IPT2(IU32, addr, IU16, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_storedw	IPT2(IU32, addr, IU32, val);
#define	sas_storedw(addr, val)	c_sas_storedw(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_storedw(addr, val)	(*(Sas.Sas_storedw))(addr, val)
#else /* PROD */
IMPORT	void	sas_storedw	IPT2(IU32, addr, IU32, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_store	IPT2(IU32, addr, IU8, val);
#define	sas_store_no_check(addr, val)	c_sas_store(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_store_no_check(addr, val)	(*(Sas.Sas_store_no_check))(addr, val)
#else /* PROD */
IMPORT	void	sas_store_no_check	IPT2(IU32, addr, IU8, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_storew	IPT2(IU32, addr, IU16, val);
#define	sas_storew_no_check(addr, val)	c_sas_storew(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_storew_no_check(addr, val)	(*(Sas.Sas_storew_no_check))(addr, val)
#else /* PROD */
IMPORT	void	sas_storew_no_check	IPT2(IU32, addr, IU16, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_storedw	IPT2(IU32, addr, IU32, val);
#define	sas_storedw_no_check(addr, val)	c_sas_storedw(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_storedw_no_check(addr, val)	(*(Sas.Sas_storedw_no_check))(addr, val)
#else /* PROD */
IMPORT	void	sas_storedw_no_check	IPT2(IU32, addr, IU32, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_loads	IPT3(IU32, addr, IU8 *, stringptr, IU32, len);
#define	sas_loads(addr, stringptr, len)	c_sas_loads(addr, stringptr, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_loads(addr, stringptr, len)	(*(Sas.Sas_loads))(addr, stringptr, len)
#else /* PROD */
IMPORT	void	sas_loads	IPT3(IU32, addr, IU8 *, stringptr, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_stores	IPT3(IU32, addr, IU8 *, stringptr, IU32, len);
#define	sas_stores(addr, stringptr, len)	c_sas_stores(addr, stringptr, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_stores(addr, stringptr, len)	(*(Sas.Sas_stores))(addr, stringptr, len)
#else /* PROD */
IMPORT	void	sas_stores	IPT3(IU32, addr, IU8 *, stringptr, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_loads_no_check	IPT3(IU32, addr, IU8 *, stringptr, IU32, len);
#define	sas_loads_no_check(addr, stringptr, len)	c_sas_loads_no_check(addr, stringptr, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_loads_no_check(addr, stringptr, len)	(*(Sas.Sas_loads_no_check))(addr, stringptr, len)
#else /* PROD */
IMPORT	void	sas_loads_no_check	IPT3(IU32, addr, IU8 *, stringptr, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_stores_no_check	IPT3(IU32, addr, IU8 *, stringptr, IU32, len);
#define	sas_stores_no_check(addr, stringptr, len)	c_sas_stores_no_check(addr, stringptr, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_stores_no_check(addr, stringptr, len)	(*(Sas.Sas_stores_no_check))(addr, stringptr, len)
#else /* PROD */
IMPORT	void	sas_stores_no_check	IPT3(IU32, addr, IU8 *, stringptr, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_move_bytes_forward	IPT3(IU32, src, IU32, dest, IU32, len);
#define	sas_move_bytes_forward(src, dest, len)	c_sas_move_bytes_forward(src, dest, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_move_bytes_forward(src, dest, len)	(*(Sas.Sas_move_bytes_forward))(src, dest, len)
#else /* PROD */
IMPORT	void	sas_move_bytes_forward	IPT3(IU32, src, IU32, dest, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_move_words_forward	IPT3(IU32, src, IU32, dest, IU32, len);
#define	sas_move_words_forward(src, dest, len)	c_sas_move_words_forward(src, dest, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_move_words_forward(src, dest, len)	(*(Sas.Sas_move_words_forward))(src, dest, len)
#else /* PROD */
IMPORT	void	sas_move_words_forward	IPT3(IU32, src, IU32, dest, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_move_doubles_forward	IPT3(IU32, src, IU32, dest, IU32, len);
#define	sas_move_doubles_forward(src, dest, len)	c_sas_move_doubles_forward(src, dest, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_move_doubles_forward(src, dest, len)	(*(Sas.Sas_move_doubles_forward))(src, dest, len)
#else /* PROD */
IMPORT	void	sas_move_doubles_forward	IPT3(IU32, src, IU32, dest, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_fills	IPT3(IU32, dest, IU8, val, IU32, len);
#define	sas_fills(dest, val, len)	c_sas_fills(dest, val, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_fills(dest, val, len)	(*(Sas.Sas_fills))(dest, val, len)
#else /* PROD */
IMPORT	void	sas_fills	IPT3(IU32, dest, IU8, val, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_fillsw	IPT3(IU32, dest, IU16, val, IU32, len);
#define	sas_fillsw(dest, val, len)	c_sas_fillsw(dest, val, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_fillsw(dest, val, len)	(*(Sas.Sas_fillsw))(dest, val, len)
#else /* PROD */
IMPORT	void	sas_fillsw	IPT3(IU32, dest, IU16, val, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_fillsdw	IPT3(IU32, dest, IU32, val, IU32, len);
#define	sas_fillsdw(dest, val, len)	c_sas_fillsdw(dest, val, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_fillsdw(dest, val, len)	(*(Sas.Sas_fillsdw))(dest, val, len)
#else /* PROD */
IMPORT	void	sas_fillsdw	IPT3(IU32, dest, IU32, val, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU8 *	c_sas_scratch_address	IPT1(IU32, length);
#define	sas_scratch_address(length)	c_sas_scratch_address(length)
#else	/* CCPU */

#ifdef PROD
#define	sas_scratch_address(length)	(*(Sas.Sas_scratch_address))(length)
#else /* PROD */
IMPORT	IU8 *	sas_scratch_address	IPT1(IU32, length);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU8 *	c_sas_transbuf_address	IPT2(IU32, dest_addr, IU32, length);
#define	sas_transbuf_address(dest_addr, length)	c_sas_transbuf_address(dest_addr, length)
#else	/* CCPU */

#ifdef PROD
#define	sas_transbuf_address(dest_addr, length)	(*(Sas.Sas_transbuf_address))(dest_addr, length)
#else /* PROD */
IMPORT	IU8 *	sas_transbuf_address	IPT2(IU32, dest_addr, IU32, length);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_loads	IPT3(IU32, src_addr, IU8 *, dest_addr, IU32, length);
#define	sas_loads_to_transbuf(src_addr, dest_addr, length)	c_sas_loads(src_addr, dest_addr, length)
#else	/* CCPU */

#ifdef PROD
#define	sas_loads_to_transbuf(src_addr, dest_addr, length)	(*(Sas.Sas_loads_to_transbuf))(src_addr, dest_addr, length)
#else /* PROD */
IMPORT	void	sas_loads_to_transbuf	IPT3(IU32, src_addr, IU8 *, dest_addr, IU32, length);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_stores	IPT3(IU32, dest_addr, IU8 *, src_addr, IU32, length);
#define	sas_stores_from_transbuf(dest_addr, src_addr, length)	c_sas_stores(dest_addr, src_addr, length)
#else	/* CCPU */

#ifdef PROD
#define	sas_stores_from_transbuf(dest_addr, src_addr, length)	(*(Sas.Sas_stores_from_transbuf))(dest_addr, src_addr, length)
#else /* PROD */
IMPORT	void	sas_stores_from_transbuf	IPT3(IU32, dest_addr, IU8 *, src_addr, IU32, length);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU8	phy_r8	IPT1(IU32, addr);
#define	sas_PR8(addr)	phy_r8(addr)
#else	/* CCPU */

#ifdef PROD
#define	sas_PR8(addr)	(*(Sas.Sas_PR8))(addr)
#else /* PROD */
IMPORT	IU8	sas_PR8	IPT1(IU32, addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU16	phy_r16	IPT1(IU32, addr);
#define	sas_PR16(addr)	phy_r16(addr)
#else	/* CCPU */

#ifdef PROD
#define	sas_PR16(addr)	(*(Sas.Sas_PR16))(addr)
#else /* PROD */
IMPORT	IU16	sas_PR16	IPT1(IU32, addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU32	phy_r32	IPT1(IU32, addr);
#define	sas_PR32(addr)	phy_r32(addr)
#else	/* CCPU */

#ifdef PROD
#define	sas_PR32(addr)	(*(Sas.Sas_PR32))(addr)
#else /* PROD */
IMPORT	IU32	sas_PR32	IPT1(IU32, addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	phy_w8	IPT2(IU32, addr, IU8, val);
#define	sas_PW8(addr, val)	phy_w8(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_PW8(addr, val)	(*(Sas.Sas_PW8))(addr, val)
#else /* PROD */
IMPORT	void	sas_PW8	IPT2(IU32, addr, IU8, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	phy_w16	IPT2(IU32, addr, IU16, val);
#define	sas_PW16(addr, val)	phy_w16(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_PW16(addr, val)	(*(Sas.Sas_PW16))(addr, val)
#else /* PROD */
IMPORT	void	sas_PW16	IPT2(IU32, addr, IU16, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	phy_w32	IPT2(IU32, addr, IU32, val);
#define	sas_PW32(addr, val)	phy_w32(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_PW32(addr, val)	(*(Sas.Sas_PW32))(addr, val)
#else /* PROD */
IMPORT	void	sas_PW32	IPT2(IU32, addr, IU32, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	phy_w8_no_check	IPT2(IU32, addr, IU8, val);
#define	sas_PW8_no_check(addr, val)	phy_w8_no_check(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_PW8_no_check(addr, val)	(*(Sas.Sas_PW8_no_check))(addr, val)
#else /* PROD */
IMPORT	void	sas_PW8_no_check	IPT2(IU32, addr, IU8, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	phy_w16_no_check	IPT2(IU32, addr, IU16, val);
#define	sas_PW16_no_check(addr, val)	phy_w16_no_check(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_PW16_no_check(addr, val)	(*(Sas.Sas_PW16_no_check))(addr, val)
#else /* PROD */
IMPORT	void	sas_PW16_no_check	IPT2(IU32, addr, IU16, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	phy_w32_no_check	IPT2(IU32, addr, IU32, val);
#define	sas_PW32_no_check(addr, val)	phy_w32_no_check(addr, val)
#else	/* CCPU */

#ifdef PROD
#define	sas_PW32_no_check(addr, val)	(*(Sas.Sas_PW32_no_check))(addr, val)
#else /* PROD */
IMPORT	void	sas_PW32_no_check	IPT2(IU32, addr, IU32, val);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU8 *	c_GetPhyAdd	IPT1(IU32, phys_addr);
#define	getPtrToPhysAddrByte(phys_addr)	c_GetPhyAdd(phys_addr)
#else	/* CCPU */

#ifdef PROD
#define	getPtrToPhysAddrByte(phys_addr)	(*(Sas.SasPtrToPhysAddrByte))(phys_addr)
#else /* PROD */
IMPORT	IU8 *	getPtrToPhysAddrByte	IPT1(IU32, phys_addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU8 *	c_get_byte_addr	IPT1(IU32, phys_addr);
#define	get_byte_addr(phys_addr)	c_get_byte_addr(phys_addr)
#else	/* CCPU */

#ifdef PROD
#define	get_byte_addr(phys_addr)	(*(Sas.Sas_get_byte_addr))(phys_addr)
#else /* PROD */
IMPORT	IU8 *	get_byte_addr	IPT1(IU32, phys_addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU8 *	c_GetLinAdd	IPT1(IU32, lin_addr);
#define	getPtrToLinAddrByte(lin_addr)	c_GetLinAdd(lin_addr)
#else	/* CCPU */

#ifdef PROD
#define	getPtrToLinAddrByte(lin_addr)	(*(Sas.SasPtrToLinAddrByte))(lin_addr)
#else /* PROD */
IMPORT	IU8 *	getPtrToLinAddrByte	IPT1(IU32, lin_addr);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IBOOL	c_SasRegisterVirtualSelectors	IPT2(IU16, sel1, IU16, sel2);
#define	sas_init_pm_selectors(sel1, sel2)	c_SasRegisterVirtualSelectors(sel1, sel2)
#else	/* CCPU */

#ifdef PROD
#define	sas_init_pm_selectors(sel1, sel2)	(*(Sas.SasRegisterVirtualSelectors))(sel1, sel2)
#else /* PROD */
IMPORT	IBOOL	sas_init_pm_selectors	IPT2(IU16, sel1, IU16, sel2);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU

#else	/* CCPU */

#ifdef PROD
#define	sas_overwrite_memory(addr, length)	(*(Sas.Sas_overwrite_memory))(addr, length)
#else /* PROD */
IMPORT	void	sas_overwrite_memory	IPT2(IU32, addr, IU32, length);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_PWS	IPT3(IU32, dest, IU8 *, src, IU32, len);
#define	sas_PWS(dest, src, len)	c_sas_PWS(dest, src, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_PWS(dest, src, len)	(*(Sas.Sas_PWS))(dest, src, len)
#else /* PROD */
IMPORT	void	sas_PWS	IPT3(IU32, dest, IU8 *, src, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_PWS_no_check	IPT3(IU32, dest, IU8 *, src, IU32, len);
#define	sas_PWS_no_check(dest, src, len)	c_sas_PWS_no_check(dest, src, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_PWS_no_check(dest, src, len)	(*(Sas.Sas_PWS_no_check))(dest, src, len)
#else /* PROD */
IMPORT	void	sas_PWS_no_check	IPT3(IU32, dest, IU8 *, src, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_PRS	IPT3(IU32, src, IU8 *, dest, IU32, len);
#define	sas_PRS(src, dest, len)	c_sas_PRS(src, dest, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_PRS(src, dest, len)	(*(Sas.Sas_PRS))(src, dest, len)
#else /* PROD */
IMPORT	void	sas_PRS	IPT3(IU32, src, IU8 *, dest, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	void	c_sas_PRS_no_check	IPT3(IU32, src, IU8 *, dest, IU32, len);
#define	sas_PRS_no_check(src, dest, len)	c_sas_PRS_no_check(src, dest, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_PRS_no_check(src, dest, len)	(*(Sas.Sas_PRS_no_check))(src, dest, len)
#else /* PROD */
IMPORT	void	sas_PRS_no_check	IPT3(IU32, src, IU8 *, dest, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IBOOL	c_sas_PigCmpPage	IPT3(IU32, src, IU8 *, dest, IU32, len);
#define	sas_PigCmpPage(src, dest, len)	c_sas_PigCmpPage(src, dest, len)
#else	/* CCPU */

#ifdef PROD
#define	sas_PigCmpPage(src, dest, len)	(*(Sas.Sas_PigCmpPage))(src, dest, len)
#else /* PROD */
IMPORT	IBOOL	sas_PigCmpPage	IPT3(IU32, src, IU8 *, dest, IU32, len);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU8 *	c_sas_touch	IPT2(IU32, addr, IU32, length);
#define	sas_touch(addr, length)	c_sas_touch(addr, length)
#else	/* CCPU */

#ifdef PROD
#define	sas_touch(addr, length)	(*(Sas.Sas_touch))(addr, length)
#else /* PROD */
IMPORT	IU8 *	sas_touch	IPT2(IU32, addr, IU32, length);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IBOOL	c_IOVirtualised	IPT4(IU16, port, IU32 *, value, IU32, offset, IU8, width);
#define	IOVirtualised(port, value, offset, width)	c_IOVirtualised(port, value, offset, width)
#else	/* CCPU */

#ifdef PROD
#define	IOVirtualised(port, value, offset, width)	(*(Sas.IOVirtualised))(port, value, offset, width)
#else /* PROD */
IMPORT	IBOOL	IOVirtualised	IPT4(IU16, port, IU32 *, value, IU32, offset, IU8, width);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU
IMPORT	IU32	c_VirtualiseInstruction	IPT4(IU32, eipInRom, IUH, size, IU32, linearAddrOrPort, IU32, dataIn);
#define	VirtualiseInstruction(eipInRom, size, linearAddrOrPort, dataIn)	c_VirtualiseInstruction(eipInRom, size, linearAddrOrPort, dataIn)
#else	/* CCPU */

#ifdef PROD
#define	VirtualiseInstruction(eipInRom, size, linearAddrOrPort, dataIn)	(*(Sas.SasVirtualiseInstruction))(eipInRom, size, linearAddrOrPort, dataIn)
#else /* PROD */
IMPORT	IU32	VirtualiseInstruction	IPT4(IU32, eipInRom, IUH, size, IU32, linearAddrOrPort, IU32, dataIn);
#endif /*PROD*/

#endif	/* CCPU */

#ifdef	CCPU

#else	/* CCPU */

#ifdef PROD
#define	IsPageInstanceData(physAddr)	(*(Sas.IsPageInstanceData))(physAddr)
#else /* PROD */
IMPORT	IBOOL	IsPageInstanceData	IPT1(IU32, physAddr);
#endif /*PROD*/

#endif	/* CCPU */

#endif	/* _SAS4GEN_H_ */
/*======================================== END ========================================*/