1139749Simp/*-
2139749Simp ****************************************************************************
365312Smsmith *
465312Smsmith * Copyright (c) 1996-2000 Distributed Processing Technology Corporation
565312Smsmith * Copyright (c) 2000 Adaptec Corporation.
665312Smsmith * All rights reserved.
765312Smsmith *
865312Smsmith * Copyright (c) 1998 I2O Special Interest Group (I2O SIG)
965312Smsmith * All rights reserved
1065312Smsmith *
1165312Smsmith * Redistribution and use in source form, with or without modification, are
1265312Smsmith * permitted provided that redistributions of source code must retain the
1365312Smsmith * above copyright notice, this list of conditions and the following disclaimer.
1465312Smsmith *
1565312Smsmith * This software is provided `as is' by Distributed Processing Technology and
1665312Smsmith * any express or implied warranties, including, but not limited to, the
1765312Smsmith * implied warranties of merchantability and fitness for a particular purpose,
1865312Smsmith * are disclaimed. In no event shall Distributed Processing Technology be
1965312Smsmith * liable for any direct, indirect, incidental, special, exemplary or
2065312Smsmith * consequential damages (including, but not limited to, procurement of
2165312Smsmith * substitute goods or services; loss of use, data, or profits; or business
2265312Smsmith * interruptions) however caused and on any theory of liability, whether in
2365312Smsmith * contract, strict liability, or tort (including negligence or otherwise)
2465312Smsmith * arising in any way out of the use of this driver software, even if advised
2565312Smsmith * of the possibility of such damage.
2665312Smsmith *
2765312Smsmith * This information is provided on an as-is basis without warranty of any
2865312Smsmith * kind, either express or implied, including but not limited to, implied
2965312Smsmith * warranties or merchantability and fitness for a particular purpose. I2O SIG
3065312Smsmith * does not warrant that this program will meet the user's requirements or
3165312Smsmith * that the operation of these programs will be uninterrupted or error-free.
3265312Smsmith * The I2O SIG disclaims all liability, including liability for infringement
3365312Smsmith * of any proprietary rights, relating to implementation of information in
3465312Smsmith * this specification. The I2O SIG does not warrant or represent that such
3565312Smsmith * implementations(s) will not infringe such rights. Acceptance and use of
3665312Smsmith * this program constitutes the user's understanding that he will have no
3765312Smsmith * recourse to I2O SIG for any actual or consequential damages including, but
3865312Smsmith * not limited to, loss profits arising out of use or inability to use this
3965312Smsmith * program.
4065312Smsmith *
4165312Smsmith * This information is provided for the purpose of recompilation of the
4265312Smsmith * driver code provided by Distributed Processing Technology only. It is
4365312Smsmith * NOT to be used for any other purpose.
4465312Smsmith *
4565312Smsmith * To develop other products based upon I2O definitions, it is necessary to
4665312Smsmith * become a "Registered Developer" of the I2O SIG. This can be done by calling
4765312Smsmith * 415-750-8352 in the US, or via http://www.i2osig.org.
4865312Smsmith *
4987826Sobrien * $FreeBSD: releng/10.2/sys/dev/asr/i2odep.h 155278 2006-02-04 08:01:49Z scottl $
5087826Sobrien *
5165312Smsmith **************************************************************************/
5265312Smsmith
5365312Smsmith/*
5465312Smsmith * This template provides place holders for architecture and compiler
5565312Smsmith * dependencies. It should be filled in and renamed as i2odep.h.
5665312Smsmith * i2odep.h is included by i2otypes.h. <xxx> marks the places to fill.
5765312Smsmith */
5865312Smsmith
5965312Smsmith#ifndef __INCi2odeph
6096615Sobrien#define	__INCi2odeph
6165312Smsmith
6296615Sobrien#define	I2ODEP_REV 1_5_4
6365312Smsmith
6465312Smsmith/*
6565312Smsmith * Pragma macros. These are to assure appropriate alignment between
6665312Smsmith * host/IOP as defined by the I2O Specification. Each one of the shared
6765312Smsmith * header files includes these macros.
6865312Smsmith */
6965312Smsmith
7096615Sobrien#define	PRAGMA_ALIGN_PUSH
7196615Sobrien#define	PRAGMA_ALIGN_POP
7296615Sobrien#define	PRAGMA_PACK_PUSH
7396615Sobrien#define	PRAGMA_PACK_POP
7465312Smsmith
7565312Smsmith/* Setup the basics */
7665312Smsmith
7796554Sobrientypedef	   signed char	  S8;
7896554Sobrientypedef	   signed short	  S16;
7965312Smsmith
8096554Sobrientypedef	   unsigned char  U8;
8196554Sobrientypedef	   unsigned short U16;
8265312Smsmith
83155278Sscottltypedef	   u_int32_t U32;
84155278Sscottltypedef	   int32_t  S32;
8565312Smsmith
8665312Smsmith
8765312Smsmith/* Bitfields */
8865312Smsmith
8965312Smsmith#if (defined(__BORLANDC__))
9096554Sobrientypedef	   U16 BF;
9165312Smsmith#else
9296554Sobrientypedef	   U32 BF;
9365312Smsmith#endif
9465312Smsmith
9565312Smsmith
9665312Smsmith/* VOID */
9765312Smsmith
9865312Smsmith#ifndef __VOID
9965312Smsmith#if (defined(_DPT_ARC))
10065312Smsmith# define VOID void
10165312Smsmith#else
10265312Smsmith typedef    void  VOID;
10365312Smsmith#endif
10496615Sobrien#define	__VOID
10565312Smsmith#endif
10665312Smsmith
10765312Smsmith
10865312Smsmith/* Boolean */
10965312Smsmith
11065312Smsmith#ifndef __BOOL
11196615Sobrien#define	__BOOL
11265312Smsmith
11365312Smsmithtypedef unsigned char BOOL;
11465312Smsmith#endif
11565312Smsmith
11696655Sbrian#if !defined(__FAR__)
11796614Sobrien# if defined(__BORLANDC__)
11865312Smsmith#  define __FAR__ far
11965312Smsmith# else
12065312Smsmith#  define __FAR__
12165312Smsmith# endif
12265312Smsmith#endif
12365312Smsmith
12465312Smsmith/* NULL */
12565312Smsmith
12696614Sobrien#if !defined(NULL)
12765312Smsmith# define NULL  ((VOID __FAR__ *)0L)
12865312Smsmith#endif
12965312Smsmith
13065312Smsmith
13196614Sobrien#if defined(__SPARC__) || defined(__linux__)
13296554Sobrientypedef char		       CHAR;
13396554Sobrientypedef char		       *pCHAR;
13496554Sobrientypedef char		       INT8;
13596554Sobrientypedef char		       *pINT8;
13696554Sobrientypedef unsigned char	       UINT8;
13796554Sobrientypedef unsigned char	       *pUINT8;
13896554Sobrientypedef short		       INT16;
13996554Sobrientypedef short		       *pINT16;
14096554Sobrientypedef unsigned short	       UINT16;
14196554Sobrientypedef unsigned short	       *pUINT16;
14296554Sobrientypedef long		       INT32;
14396554Sobrientypedef long		       *pINT32;
14496554Sobrientypedef unsigned long	       UINT32;
14596554Sobrientypedef unsigned long	       *pUINT32;
14696554Sobrien/* typedef SCSI_REQUEST_BLOCK	  OS_REQUEST_T; */
14796554Sobrien/* typedef PSCSI_REQUEST_BLOCK	  pOS_REQUEST_T; */
14896615Sobrien#define	STATIC		       static
14965312Smsmith#ifndef __NEAR__
15065312Smsmith# if (defined(__BORLANDC__))
15165312Smsmith#  define __NEAR__ near
15265312Smsmith# else
15365312Smsmith#  define __NEAR__
15465312Smsmith# endif
15565312Smsmith#endif
15696615Sobrien#define	pVOID		       void *
15796615Sobrien#define	pBOOLEAN	       BOOLEAN *
15865312Smsmith#endif
15965312Smsmith
16065312Smsmith
16165312Smsmith/*
16265312Smsmith * Copyright (c) 1996-2000 Distributed Processing Technology Corporation
16365312Smsmith * Copyright (c) 2000 Adaptec Corporation.
16465312Smsmith * All rights reserved.
16565312Smsmith */
16665312Smsmith/*
16796554Sobrien *	Define some generalized portability macros
16896554Sobrien *	These macros follow the following parameterization:
16996554Sobrien *	    _F_getXXX(pointer,primaryElement<,offset>,referredElement)
17096554Sobrien *	    _F_setXXX(pointer,primaryElement<,offset>,referredElement,newValue)
17196554Sobrien *	These parameters are shortened to u, w, x, y and z to reduce clutter.
17265312Smsmith */
17365312Smsmith#if (defined(__BORLANDC__))
17496554Sobrien# define I2O_TID_MASK	      ((U16)((1L<<I2O_TID_SZ)-1))
17565312Smsmith/* First 12 bits */
17665312Smsmith# define _F_getTID(w,x,y)     (*((U16 __FAR__ *)(&((w)->x))) & I2O_TID_MASK)
17765312Smsmith# define _F_setTID(w,x,y,z)   (*((U16 __FAR__ *)(&((w)->x)))\
17896554Sobrien			       &= 0xFFFF - I2O_TID_MASK);\
17996554Sobrien			      (*((U16 __FAR__ *)(&((w)->x)))\
18096554Sobrien			       |=(U16)(z)&I2O_TID_MASK)
18165312Smsmith/* Seconds 12 bits (optimized with the assumption of 12 & 12) */
18265312Smsmith# define _F_getTID1(w,x,y)    ((*(U16 __FAR__ *)(((U8 __FAR__ *)(&((w)->x)))\
18396554Sobrien			       + (I2O_TID_SZ/8)))\
18496554Sobrien				>> (I2O_TID_SZ-((I2O_TID_SZ/8)*8)))
18565312Smsmith# define _F_setTID1(w,x,y,z)  ((*((U16 __FAR__ *)(((U8 __FAR__ *)(&((w)->x)))\
18696554Sobrien			       + (I2O_TID_SZ/8)))) &= (0xFFFF >> I2O_TID_SZ));\
18796554Sobrien			      ((*((U16 __FAR__ *)(((U8 __FAR__ *)(&((w)->x)))\
18896554Sobrien			       + (I2O_TID_SZ/8)))) |= (z)\
18996554Sobrien				<< (I2O_TID_SZ-((I2O_TID_SZ/8)*8)))
19065312Smsmith/* Last 8 bits */
19165312Smsmith# define _F_getFunc(w,x,y)    (*(((U8 __FAR__ *)(&((w)->x)))\
19296554Sobrien			       + ((I2O_TID_SZ+I2O_TID_SZ)/8)))
19365312Smsmith# define _F_setFunc(w,x,y,z)  (_F_getFunc(w,x,y) = (z))
19465312Smsmith# define I2O_SG_COUNT_MASK    ((U32)((1L<<I2O_SG_COUNT_SZ)-1))
19565312Smsmith/* First 24 bits */
19665312Smsmith# define _F_getCount(w,x,y)   (*((U32 __FAR__ *)(&((w)->x)))&I2O_SG_COUNT_MASK)
19765312Smsmith/*
19865312Smsmith * The following is less efficient because of compiler inefficiencies:
19965312Smsmith *
20065312Smsmith * # define _F_setCount(w,x,y,z)  *((U16 __FAR__ *)(&((w)->x))) = (U16)(z);\
20196554Sobrien *				((U8 __FAR__ *)(&((w)->x)))[2]= (U8)((z)>>16L)
20265312Smsmith *
20365312Smsmith * so we will use the apparently more code intensive:
20465312Smsmith */
20565312Smsmith# define _F_setCount(w,x,y,z) (*((U32 __FAR__ *)(&((w)->x)))\
20696554Sobrien			       &= 0xFFFFFFFFL - I2O_SG_COUNT_MASK);\
20796554Sobrien			      (*((U32 __FAR__ *)(&((w)->x)))\
20896554Sobrien			       |= (z) & I2O_SG_COUNT_MASK)
20965312Smsmith/* Last 8 bits */
21065312Smsmith# define _F_getFlags(w,x,y)   (*(((U8 __FAR__ *)(&((w)->x)))\
21196554Sobrien			       + (I2O_SG_COUNT_SZ/8)))
21265312Smsmith# define _F_setFlags(w,x,y,z) (_F_getFlags(w,x,y) = (z))
21365312Smsmith/* Other accesses that are simpler */
21496554Sobrien# define _F_get1bit(w,x,y,z)	 ((U8)((w)->z))
21596554Sobrien# define _F_set1bit(w,x,y,z,u)	 ((w)->z = (u))
21696554Sobrien# define _F_get1bit1(w,x,y,z)	 ((U8)((w)->z))
21796554Sobrien# define _F_set1bit1(w,x,y,z,u)	 ((w)->z = (u))
21896554Sobrien# define _F_get4bit4(w,x,y,z)	 ((U8)((w)->z))
21996554Sobrien# define _F_set4bit4(w,x,y,z,u)	 ((w)->z = (u))
22096554Sobrien# define _F_get8bit(w,x,y,z)	 ((U8)((w)->z))
22196554Sobrien# define _F_set8bit(w,x,y,z,u)	 ((w)->z = (u))
22296554Sobrien# define _F_get12bit(w,x,y,z)	 ((U16)((w)->z))
22396554Sobrien# define _F_set12bit(w,x,y,z,u)	 ((w)->z = (u))
22496554Sobrien# define _F_get12bit4(w,x,y,z)	 ((U16)((w)->z))
22565312Smsmith# define _F_set12bit4(w,x,y,z,u) ((w)->z = (u))
22696554Sobrien# define _F_get16bit(w,x,y,z)	 ((U16)((w)->z))
22796554Sobrien# define _F_set16bit(w,x,y,z,u)	 ((w)->z = (u))
22865312Smsmith#elif (defined(_DPT_BIG_ENDIAN))
22965312Smsmith/* First 12 bits */
23065312Smsmith# define _F_getTID(w,x,y)     getL12bit(w,x,0)
23165312Smsmith# define _F_setTID(w,x,y,z)   setL12bit(w,x,0,z)
23265312Smsmith# define _F_getTID1(w,x,y)    getL12bit1(w,x,0)
23365312Smsmith# define _F_setTID1(w,x,y,z)  setL12bit1(w,x,0,z)
23465312Smsmith# define _F_getFunc(w,x,y)    getL8bit(w,x,3)
23565312Smsmith# define _F_setFunc(w,x,y,z)  setL8bit(w,x,3,z)
23665312Smsmith# define _F_getCount(w,x,y)   getL24bit1(w,x,0)
23765312Smsmith# define _F_setCount(w,x,y,z) setL24bit1(w,x,0,z)
23865312Smsmith# define _F_getFlags(w,x,y)   getL8bit(w,x,3)
23965312Smsmith# define _F_setFlags(w,x,y,z) setL8bit(w,x,3,z)
24065312Smsmith/* Other accesses that are simpler */
24196554Sobrien# define _F_get1bit(w,x,y,z)	 getL1bit(w,x,y)
24296554Sobrien# define _F_set1bit(w,x,y,z,u)	 setL1bit(w,x,y,u)
24396554Sobrien# define _F_get1bit1(w,x,y,z)	 getL1bit1(w,x,y)
24496554Sobrien# define _F_set1bit1(w,x,y,z,u)	 setL1bit1(w,x,y,u)
24596554Sobrien# define _F_get4bit4(w,x,y,z)	 getL4bit(w,x,y)
24696554Sobrien# define _F_set4bit4(w,x,y,z,u)	 setL4bit(w,x,y,u)
24796554Sobrien# define _F_get8bit(w,x,y,z)	 getL8bit(w,x,y)
24896554Sobrien# define _F_set8bit(w,x,y,z,u)	 setL8bit(w,x,y,u)
24996554Sobrien# define _F_get12bit(w,x,y,z)	 getL12bit(w,x,y)
25096554Sobrien# define _F_set12bit(w,x,y,z,u)	 setL12bit(w,x,y,z)
25196554Sobrien# define _F_get12bit4(w,x,y,z)	 getL12bit1(w,x,(y)-1)
25265312Smsmith# define _F_set12bit4(w,x,y,z,u) setL12bit1(w,x,(y)-1,u)
25396554Sobrien# define _F_get16bit(w,x,y,z)	 getL16bit(w,x,y)
25496554Sobrien# define _F_set16bit(w,x,y,z,u)	 setL16bit(w,x,y,u)
25565312Smsmith#else
25665312Smsmith# define _F_getTID(w,x,y)     ((U16)((w)->y))
25765312Smsmith# define _F_setTID(w,x,y,z)   ((w)->y = (z))
25865312Smsmith# define _F_getTID1(w,x,y)    ((U16)((w)->y))
25965312Smsmith# define _F_setTID1(w,x,y,z)  ((w)->y = (z))
26065312Smsmith# define _F_getFunc(w,x,y)    ((U8)((w)->y))
26165312Smsmith# define _F_setFunc(w,x,y,z)  ((w)->y = (z))
26265312Smsmith# define _F_getCount(w,x,y)   ((U32)((w)->y))
26365312Smsmith# define _F_setCount(w,x,y,z) ((w)->y = (z))
26465312Smsmith# define _F_getFlags(w,x,y)   ((U8)((w)->y))
26565312Smsmith# define _F_setFlags(w,x,y,z) ((w)->y = (z))
26696554Sobrien# define _F_get1bit(w,x,y,z)	 ((U8)((w)->z))
26796554Sobrien# define _F_set1bit(w,x,y,z,u)	 ((w)->z = (u))
26896554Sobrien# define _F_get1bit1(w,x,y,z)	 ((U8)((w)->z))
26996554Sobrien# define _F_set1bit1(w,x,y,z,u)	 ((w)->z = (u))
27096554Sobrien# define _F_get4bit4(w,x,y,z)	 ((U8)((w)->z))
27196554Sobrien# define _F_set4bit4(w,x,y,z,u)	 ((w)->z = (u))
27296554Sobrien# define _F_get8bit(w,x,y,z)	 ((U8)((w)->z))
27396554Sobrien# define _F_set8bit(w,x,y,z,u)	 ((w)->z = (u))
27496554Sobrien# define _F_get12bit(w,x,y,z)	 ((U16)((w)->z))
27596554Sobrien# define _F_set12bit(w,x,y,z,u)	 ((w)->z = (u))
27696554Sobrien# define _F_get12bit4(w,x,y,z)	 ((U16)((w)->z))
27765312Smsmith# define _F_set12bit4(w,x,y,z,u) ((w)->z = (u))
27896554Sobrien# define _F_get16bit(w,x,y,z)	 ((U16)((w)->z))
27996554Sobrien# define _F_set16bit(w,x,y,z,u)	 ((w)->z = (u))
28065312Smsmith#endif
28165312Smsmith
28265312Smsmith/*
28396554Sobrien *	Define some specific portability macros
28496554Sobrien *	These macros follow the following parameterization:
28596554Sobrien *		XXX_getYYY (pointer)
28696554Sobrien *		XXX_setYYY (pointer, newValue)
28796554Sobrien *	These parameters are shortened to x and y to reduce clutter.
28865312Smsmith */
28965312Smsmith
29065312Smsmith/*
29165312Smsmith * General SGE
29265312Smsmith */
29396615Sobrien#define	I2O_FLAGS_COUNT_getCount(x)   _F_getCount(x,Count,Count)
29496615Sobrien#define	I2O_FLAGS_COUNT_setCount(x,y) _F_setCount(x,Count,Count,y)
29596615Sobrien#define	I2O_FLAGS_COUNT_getFlags(x)   _F_getFlags(x,Count,Flags)
29696615Sobrien#define	I2O_FLAGS_COUNT_setFlags(x,y) _F_setFlags(x,Count,Flags,y)
29765312Smsmith
29865312Smsmith/*
29965312Smsmith * I2O_SGE_SIMPLE_ELEMENT
30065312Smsmith */
30196615Sobrien#define	I2O_SGE_SIMPLE_ELEMENT_getPhysicalAddress(x) \
30296554Sobrien	getLU4((&(x)->PhysicalAddress),0)
30396615Sobrien#define	I2O_SGE_SIMPLE_ELEMENT_setPhysicalAddress(x,y) \
30496554Sobrien	setLU4((&(x)->PhysicalAddress),0,y)
30565312Smsmith/*
30665312Smsmith * I2O_SGE_LONG_TRANSACTION_ELEMENT
30765312Smsmith */
30896615Sobrien#define	I2O_SGE_LONG_TRANSACTION_ELEMENT_getLongElementLength(x)\
30996554Sobrien	_F_getCount(x,LongElementLength,LongElementLength)
31096615Sobrien#define	I2O_SGE_LONG_TRANSACTION_ELEMENT_setLongElementLength(x,y)\
31196554Sobrien	_F_setCount(x,LongElementLength,LongElementLength,y)
31296615Sobrien#define	I2O_SGE_LONG_TRANSACTION_ELEMENT_getFlags(x)\
31396554Sobrien	_F_getFlags(x,LongElementLength,Flags)
31496615Sobrien#define	I2O_SGE_LONG_TRANSACTION_ELEMENT_setFlags(x,y)\
31596554Sobrien	_F_setFlags(x,LongElementLength,Flags,y)
31665312Smsmith
31765312Smsmith/*
31865312Smsmith * I2O_SGE_LONG_TRANSPORT_ELEMENT
31965312Smsmith */
32096615Sobrien#define	I2O_SGE_LONG_TRANSPORT_ELEMENT_getLongElementLength(x)\
32196554Sobrien	_F_getCount(x,LongElementLength,LongElementLength)
32296615Sobrien#define	I2O_SGE_LONG_TRANSPORT_ELEMENT_setLongElementLength(x,y)\
32396554Sobrien	_F_setCount(x,LongElementLength,LongElementLength,y)
32496615Sobrien#define	I2O_SGE_LONG_TRANSPORT_ELEMENT_getFlags(x)\
32596554Sobrien	_F_getFlags(x,LongElementLength,Flags)
32696615Sobrien#define	I2O_SGE_LONG_TRANSPORT_ELEMENT_setFlags(x,y)\
32796554Sobrien	_F_setFlags(x,LongElementLength,Flags,y)
32865312Smsmith
32965312Smsmith/*
33065312Smsmith * I2O_EXEC_ADAPTER_ASSIGN_MESSAGE
33165312Smsmith */
33296615Sobrien#define	I2O_EXEC_ADAPTER_ASSIGN_MESSAGE_getDdmTID(x)\
33396554Sobrien	_F_getTID(x,DdmTID,DdmTID)
33496615Sobrien#define	I2O_EXEC_ADAPTER_ASSIGN_MESSAGE_setDdmTID(x,y)\
33596554Sobrien	_F_setTID(x,DDdmTID,DdmTID,y)
33696615Sobrien#define	I2O_EXEC_ADAPTER_ASSIGN_MESSAGE_getOperationFlags(x)\
33796554Sobrien	_F_getFunc(x,DdmTID,OperationFlags)
33896615Sobrien#define	I2O_EXEC_ADAPTER_ASSIGN_MESSAGE_setOperationFlags(x,y)\
33996554Sobrien	_F_setFunc(x,DdmTID,OperationFlags,y)
34065312Smsmith
34165312Smsmith/*
34265312Smsmith * I2O_EXEC_BIOS_INFO_SET_MESSAGE
34365312Smsmith */
34496615Sobrien#define	I2O_EXEC_BIOS_INFO_SET_MESSAGE_getDeviceTID(x)\
34596554Sobrien	_F_getTID(x,DeviceTID,DeviceTID)
34696615Sobrien#define	I2O_EXEC_BIOS_INFO_SET_MESSAGE_setDeviceTID(x,y)\
34796554Sobrien	_F_setTID(x,DeviceTID,DeviceTID,y)
34896615Sobrien#define	I2O_EXEC_BIOS_INFO_SET_MESSAGE_getBiosInfo(x)\
34996554Sobrien	_F_getFunc(x,DeviceTID,BiosInfo)
35096615Sobrien#define	I2O_EXEC_BIOS_INFO_SET_MESSAGE_setBiosInfo(x,y)	 \
35196554Sobrien	_F_setFunc(x,DeviceTID,BiosInfo,y)
35265312Smsmith
35365312Smsmith/*
35465312Smsmith * I2O_ALIAS_CONNECT_SETUP
35565312Smsmith */
35696615Sobrien#define	I2O_ALIAS_CONNECT_SETUP_getIOP1AliasForTargetDevice(x)\
35796554Sobrien	_F_getTID(x,IOP1AliasForTargetDevice,IOP1AliasForTargetDevice)
35896615Sobrien#define	I2O_ALIAS_CONNECT_SETUP_setIOP1AliasForTargetDevice(x,y)\
35996554Sobrien	_F_setTID(x,IOP1AliasForTargetDevice,IOP1AliasForTargetDevice,y)
36096615Sobrien#define	I2O_ALIAS_CONNECT_SETUP_getIOP2AliasForInitiatorDevice(x)\
36196554Sobrien	_F_getTID1(x,IOP1AliasForTargetDevice,IOP2AliasForInitiatorDevice)
36296615Sobrien#define	I2O_ALIAS_CONNECT_SETUP_setIOP2AliasForInitiatorDevice(x,y)\
36396554Sobrien	_F_setTID1(x,IOP1AliasForTargetDevice,IOP2AliasForInitiatorDevice,y)
36465312Smsmith
36565312Smsmith/*
36665312Smsmith * I2O_OBJECT_CONNECT_SETUP
36765312Smsmith */
36896615Sobrien#define	I2O_OBJECT_CONNECT_SETUP_getTargetDevice(x)\
36996554Sobrien	_F_getTID(x,TargetDevice,TargetDevice)
37096615Sobrien#define	I2O_OBJECT_CONNECT_SETUP_setTargetDevice(x,y)\
37196554Sobrien	_F_setTID(x,TargetDevice,TargetDevice,y)
37296615Sobrien#define	I2O_OBJECT_CONNECT_SETUP_getInitiatorDevice(x)\
37396554Sobrien	_F_getTID1(x,TargetDevice,InitiatorDevice)
37496615Sobrien#define	I2O_OBJECT_CONNECT_SETUP_setInitiatorDevice(x,y)\
37596554Sobrien	_F_setTID1(x,TargetDevice,InitiatorDevice,y)
37696615Sobrien#define	I2O_OBJECT_CONNECT_SETUP_getOperationFlags(x)\
37796554Sobrien	_F_getFunc(x,TargetDevice,OperationFlags)
37896615Sobrien#define	I2O_OBJECT_CONNECT_SETUP_setOperationFlags(x,y)\
37996554Sobrien	_F_setFunc(x,TargetDevice,OperationFlags,y)
38065312Smsmith
38165312Smsmith/*
38265312Smsmith * I2O_OBJECT_CONNECT_REPLY
38365312Smsmith */
38496615Sobrien#define	I2O_OBJECT_CONNECT_REPLY_getTargetDevice(x)\
38596554Sobrien	_F_getTID(x,TargetDevice,TargetDevice)
38696615Sobrien#define	I2O_OBJECT_CONNECT_REPLY_setTargetDevice(x,y)\
38796554Sobrien	_F_setTID(x,TargetDevice,TargetDevice,y)
38896615Sobrien#define	I2O_OBJECT_CONNECT_REPLY_getInitiatorDevice(x)\
38996554Sobrien	_F_getTID1(x,TargetDevice,InitiatorDevice)
39096615Sobrien#define	I2O_OBJECT_CONNECT_REPLY_setInitiatorDevice(x,y)\
39196554Sobrien	_F_setTID1(x,TargetDevice,InitiatorDevice,y)
39296615Sobrien#define	I2O_OBJECT_CONNECT_REPLY_getReplyStatusCode(x)\
39396554Sobrien	_F_getFunc(x,TargetDevice,ReplyStatusCode)
39496615Sobrien#define	I2O_OBJECT_CONNECT_REPLY_setReplyStatusCode(x,y)\
39596554Sobrien	_F_setFunc(x,TargetDevice,ReplyStatusCode,y)
39665312Smsmith
39765312Smsmith/*
39865312Smsmith * I2O_EXEC_DEVICE_ASSIGN_MESSAGE
39965312Smsmith */
40096615Sobrien#define	I2O_EXEC_DEVICE_ASSIGN_MESSAGE_getDeviceTID(x)\
40196554Sobrien	_F_getTID(x,Object.DeviceTID,Object.DeviceTID)
40296615Sobrien#define	I2O_EXEC_DEVICE_ASSIGN_MESSAGE_setDeviceTID(x,y)\
40396554Sobrien	_F_setTID(x,Object.DeviceTID,Object.DeviceTID,y)
40496615Sobrien#define	I2O_EXEC_DEVICE_ASSIGN_MESSAGE_getIOP_ID(x)\
40596554Sobrien	_F_getTID1(x,Object.DeviceTID,Object.IOP_ID)
40696615Sobrien#define	I2O_EXEC_DEVICE_ASSIGN_MESSAGE_setIOP_ID(x,y)\
40796554Sobrien	_F_setTID1(x,Object.DeviceTID,Object.IOP_ID,y)
40896615Sobrien#define	I2O_EXEC_DEVICE_ASSIGN_MESSAGE_getOperationFlags(x)\
40996554Sobrien	_F_getFunc(x,Object.DeviceTID,Object.OperationFlags)
41096615Sobrien#define	I2O_EXEC_DEVICE_ASSIGN_MESSAGE_setOperationFlags(x,y)\
41196554Sobrien	_F_setFunc(x,Object.DeviceTID,Object.OperationFlags,y)
41265312Smsmith
41365312Smsmith/*
41465312Smsmith * I2O_EXEC_DEVICE_RELEASE_MESSAGE
41565312Smsmith */
41696615Sobrien#define	I2O_EXEC_DEVICE_RELEASE_MESSAGE_getDeviceTID(x)\
41796554Sobrien	_F_getTID(x,Object.DeviceTID,Object.DeviceTID)
41896615Sobrien#define	I2O_EXEC_DEVICE_RELEASE_MESSAGE_setDeviceTID(x,y)\
41996554Sobrien	_F_setTID(x,Object.DeviceTID,Object.DeviceTID,y)
42096615Sobrien#define	I2O_EXEC_DEVICE_RELEASE_MESSAGE_getIOP_ID(x)\
42196554Sobrien	_F_getTID1(x,Object.DeviceTID,Object.IOP_ID)
42296615Sobrien#define	I2O_EXEC_DEVICE_RELEASE_MESSAGE_setIOP_ID(x,y)\
42396554Sobrien	_F_setTID1(x,Object.DeviceTID,Object.IOP_ID,y)
42496615Sobrien#define	I2O_EXEC_DEVICE_RELEASE_MESSAGE_getOperationFlags(x)\
42596554Sobrien	_F_getFunc(x,Object.DeviceTID,Object.OperationFlags)
42696615Sobrien#define	I2O_EXEC_DEVICE_RELEASE_MESSAGE_setOperationFlags(x,y)\
42796554Sobrien	_F_setFunc(x,Object.DeviceTID,Object.OperationFlags,y)
42865312Smsmith
42965312Smsmith/*
43065312Smsmith * I2O_EXEC_IOP_RESET_MESSAGE
43165312Smsmith */
43296615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_getTargetAddress(x)\
43396554Sobrien	_F_getTID(x,TargetAddress,TargetAddress)
43496615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_setTargetAddress(x,y)\
43596554Sobrien	_F_setTID(x,TargetAddress,TargetAddress,y)
43696615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_getInitiatorAddress(x)\
43796554Sobrien	_F_getTID1(x,TargetAddress,InitiatorAddress)
43896615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_setInitiatorAddress(x,y)\
43996554Sobrien	_F_setTID1(x,TargetAddress,InitiatorAddress,y)
44096615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_getFunction(x)\
44196554Sobrien	_F_getFunc(x,TargetAddress,Function)
44296615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_setFunction(x,y)\
44396554Sobrien	_F_setFunc(x,TargetAddress,Function,y)
44496615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_getVersionOffset(x)\
44596554Sobrien		getU1((&(x)->VersionOffset),0)
44696615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_setVersionOffset(x,y)\
44796554Sobrien		setU1((&(x)->VersionOffset),0,y)
44896615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_getMsgFlags(x)\
44996554Sobrien		getU1((&(x)->VersionOffset),1)
45096615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_setMsgFlags(x,y)\
45196554Sobrien		setU1((&(x)->VersionOffset),1,y)
45296615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_getMessageSize(x)\
45396554Sobrien		getLU2((&(x)->VersionOffset),2)
45496615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_setMessageSize(x,y)\
45596554Sobrien		setLU2((&(x)->VersionOffset),2,y)
45696615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_getStatusWordLowAddress(x)\
45796554Sobrien		getLU4((&(x)->StatusWordLowAddress),0)
45896615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_setStatusWordLowAddress(x,y)\
45996554Sobrien		setLU4((&(x)->StatusWordLowAddress),0,y)
46096615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_getStatusWordHighAddress(x)\
46196554Sobrien		getLU4((&(x)->StatusWordHighAddress),0)
46296615Sobrien#define	I2O_EXEC_IOP_RESET_MESSAGE_setStatusWordHighAddress(x,y)\
46396554Sobrien		setLU4((&(x)->StatusWordHighAddress),0,y)
46465312Smsmith
46565312Smsmith
46665312Smsmith/*
46765312Smsmith * I2O_EXEC_STATUS_GET_MESSAGE
46865312Smsmith */
46996615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_getVersionOffset(x)\
47096554Sobrien		getU1((&(x)->VersionOffset),0)
47196615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_setVersionOffset(x,y)\
47296554Sobrien		setU1((&(x)->VersionOffset),0,y)
47396615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_getMsgFlags(x)\
47496554Sobrien		getU1((&(x)->VersionOffset),1)
47596615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_setMsgFlags(x,y)\
47696554Sobrien		setU1((&(x)->VersionOffset),1,y)
47796615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_getMessageSize(x)\
47896554Sobrien		getLU2((&(x)->VersionOffset),2)
47996615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_setMessageSize(x,y)\
48096554Sobrien		setLU2((&(x)->VersionOffset),2,y)
48196615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_getReplyBufferAddressLow(x)\
48296554Sobrien		getLU4((&(x)->ReplyBufferAddressLow),0)
48396615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_setReplyBufferAddressLow(x,y)\
48496554Sobrien		setLU4((&(x)->ReplyBufferAddressLow),0,y)
48596615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_getReplyBufferAddressHigh(x)\
48696554Sobrien		getLU4((&(x)->ReplyBufferAddressHigh),0)
48796615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_setReplyBufferAddressHigh(x,y)\
48896554Sobrien		setLU4((&(x)->ReplyBufferAddressHigh),0,y)
48996615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_getReplyBufferLength(x)\
49096554Sobrien		getLU4((&(x)->ReplyBufferLength),0)
49196615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_setReplyBufferLength(x,y)\
49296554Sobrien		setLU4((&(x)->ReplyBufferLength),0,y)
49396615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_getTargetAddress(x)\
49496554Sobrien		_F_getTID(x,TargetAddress,TargetAddress)
49596615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_setTargetAddress(x,y)\
49696554Sobrien		_F_setTID(x,TargetAddress,TargetAddress,y)
49796615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_getInitiatorAddress(x)\
49896554Sobrien		_F_getTID1(x,TargetAddress,InitiatorAddress)
49996615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_setInitiatorAddress(x,y)\
50096554Sobrien		_F_setTID1(x,TargetAddress,InitiatorAddress,y)
50196615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_getFunction(x)\
50296554Sobrien		_F_getFunc(x,TargetAddress,Function)
50396615Sobrien#define	I2O_EXEC_STATUS_GET_MESSAGE_setFunction(x,y)\
50496554Sobrien		_F_setFunc(x,TargetAddress,Function,y)
50565312Smsmith
50665312Smsmith/*
50765312Smsmith * I2O_MESSAGE_FRAME
50865312Smsmith */
50996615Sobrien#define	I2O_MESSAGE_FRAME_getVersionOffset(x)\
51096554Sobrien		getU1((&((x)->VersionOffset)),0)
51196615Sobrien#define	I2O_MESSAGE_FRAME_setVersionOffset(x,y)\
51296554Sobrien		setU1(((&(x)->VersionOffset)),0,y)
51396615Sobrien#define	I2O_MESSAGE_FRAME_getMsgFlags(x)\
51496554Sobrien		getU1((&((x)->VersionOffset)),1)
51596615Sobrien#define	I2O_MESSAGE_FRAME_setMsgFlags(x,y)\
51696554Sobrien		setU1((&((x)->VersionOffset)),1,y)
51796615Sobrien#define	I2O_MESSAGE_FRAME_getMessageSize(x)\
51896554Sobrien		getLU2((&((x)->VersionOffset)),2)
51996615Sobrien#define	I2O_MESSAGE_FRAME_setMessageSize(x,y)\
52096554Sobrien		setLU2((&((x)->VersionOffset)),2,y)
52196615Sobrien#define	I2O_MESSAGE_FRAME_getTargetAddress(x)\
52296554Sobrien		_F_getTID(x,TargetAddress,TargetAddress)
52396615Sobrien#define	I2O_MESSAGE_FRAME_setTargetAddress(x,y)\
52496554Sobrien		_F_setTID(x,TargetAddress,TargetAddress,y)
52596615Sobrien#define	I2O_MESSAGE_FRAME_getInitiatorAddress(x)\
52696554Sobrien		_F_getTID1(x,TargetAddress,InitiatorAddress)
52796615Sobrien#define	I2O_MESSAGE_FRAME_setInitiatorAddress(x,y)\
52896554Sobrien		_F_setTID1(x,TargetAddress,InitiatorAddress,y)
52996615Sobrien#define	I2O_MESSAGE_FRAME_getFunction(x)\
53096554Sobrien		_F_getFunc(x,TargetAddress,Function)
53196615Sobrien#define	I2O_MESSAGE_FRAME_setFunction(x,y)\
53296554Sobrien		_F_setFunc(x,TargetAddress,Function,y)
53365312Smsmith/* 32 bit only for now */
53496615Sobrien#define	I2O_MESSAGE_FRAME_getInitiatorContext(x)\
53596554Sobrien		(x)->InitiatorContext
53696615Sobrien#define	I2O_MESSAGE_FRAME_setInitiatorContext(x,y)\
53796554Sobrien		((x)->InitiatorContext = (y))
53865312Smsmith/*
53965312Smsmith *	We are spilling the 64 bit Context field into the Transaction
54065312Smsmith *	context of the specific frames. Synchronous commands (resetIop
54165312Smsmith *	et al) do not have this field, so beware. Also, Failed Reply frames
54265312Smsmith *	can not contain the 64 bit context, the software must reference
54365312Smsmith *	the PreservedMFA and pick up the 64 bit context from the incoming
54465312Smsmith *	message frame. The software must make no reference to the
54565312Smsmith *	TransactionContext field at all.
54665312Smsmith */
54765312Smsmith#if defined(_MSC_VER) && _MSC_VER >= 800
54865312Smsmith#ifndef u_int64_t
54996615Sobrien#define	u_int64_t unsigned __int64
55065312Smsmith#endif
55165312Smsmith#endif
55296615Sobrien#define	I2O_MESSAGE_FRAME_getInitiatorContext64(x)\
55365312Smsmith		(*((u_int64_t *)(&((x)->InitiatorContext))))
55496615Sobrien#define	I2O_MESSAGE_FRAME_setInitiatorContext64(x,y)\
55565312Smsmith		((*((u_int64_t *)(&((x)->InitiatorContext))))=(y))
55665312Smsmith
55765312Smsmith/*
55865312Smsmith * I2O_EXEC_OUTBOUND_INIT_MESSAGE
55965312Smsmith */
56096615Sobrien#define	I2O_EXEC_OUTBOUND_INIT_MESSAGE_getHostPageFrameSize(x)\
56196554Sobrien		getLU4((&(x)->HostPageFrameSize),0)
56296615Sobrien#define	I2O_EXEC_OUTBOUND_INIT_MESSAGE_setHostPageFrameSize(x,y)\
56396554Sobrien		setLU4((&(x)->HostPageFrameSize),0,y)
56496615Sobrien#define	I2O_EXEC_OUTBOUND_INIT_MESSAGE_getInitCode(x)\
56596554Sobrien		getU1((&(x)->InitCode),0)
56696615Sobrien#define	I2O_EXEC_OUTBOUND_INIT_MESSAGE_setInitCode(x,y)\
56796554Sobrien		setU1((&(x)->InitCode),0,y)
56896615Sobrien#define	I2O_EXEC_OUTBOUND_INIT_MESSAGE_getreserved(x)\
56996554Sobrien		getU1((&(x)->reserved),0)
57096615Sobrien#define	I2O_EXEC_OUTBOUND_INIT_MESSAGE_setreserved(x,y)\
57196554Sobrien		setU1((&(x)->reserved),0,y)
57296615Sobrien#define	I2O_EXEC_OUTBOUND_INIT_MESSAGE_getOutboundMFrameSize(x)\
57396554Sobrien		getLU2((&(x)->OutboundMFrameSize),0)
57496615Sobrien#define	I2O_EXEC_OUTBOUND_INIT_MESSAGE_setOutboundMFrameSize(x,y)\
57596554Sobrien		setLU2((&(x)->OutboundMFrameSize),0,y)
57665312Smsmith
57765312Smsmith/*
57865312Smsmith * I2O_EXEC_SYS_TAB_SET_MESSAGE
57965312Smsmith */
58096615Sobrien#define	I2O_EXEC_SYS_TAB_SET_MESSAGE_getIOP_ID(x)\
58196554Sobrien		_F_get12bit(x,IOP_ID,IOP_ID)
58296615Sobrien#define	I2O_EXEC_SYS_TAB_SET_MESSAGE_setIOP_ID(x,y)\
58396554Sobrien		_F_set12bit(x,IOP_ID,IOP_ID,y)
58496551Sobrien/* #define	I2O_EXEC_SYS_TAB_SET_MESSAGE_getreserved1(x) */
58596615Sobrien#define	I2O_EXEC_SYS_TAB_SET_MESSAGE_getHostUnitID(x)\
58696554Sobrien		_F_get16bit(x,IOP_ID,2,HostUnitID)
58796615Sobrien#define	I2O_EXEC_SYS_TAB_SET_MESSAGE_setHostUnitID(x,y)\
58896554Sobrien		_F_set16bit(x,IOP_ID,2,HostUnitID,y)
58996615Sobrien#define	I2O_EXEC_SYS_TAB_SET_MESSAGE_getSegmentNumber(x)\
59096554Sobrien		_F_get12bit(x,SegmentNumber,SegmentNumber)
59196615Sobrien#define	I2O_EXEC_SYS_TAB_SET_MESSAGE_setSegmentNumber(x,y)\
59296554Sobrien		_F_get12bit(x,SegmentNumber,SegmentNumber,y)
59365312Smsmith
59496554Sobrien/*	later
59565312Smsmith * I2O_EXEC_SYS_ENABLE_MESSAGE
59665312Smsmith */
59765312Smsmith
59865312Smsmith/*
59965312Smsmith * I2O_CLASS_ID
60065312Smsmith */
60196615Sobrien#define	I2O_CLASS_ID_getClass(x)\
60296554Sobrien		_F_get12bit(x,Class,0,Class)
60396615Sobrien#define	I2O_CLASS_ID_setClass(x,y)\
60496554Sobrien		_F_set12bit(x,Class,0,Class,y)
60596615Sobrien#define	I2O_CLASS_ID_getVersion(x)\
60696554Sobrien		_F_get4bit4(x,Class,1,Version)
60796615Sobrien#define	I2O_CLASS_ID_setVersion(x,y)\
60896554Sobrien		_F_set4bit4(x,Class,1,Version,y)
60996615Sobrien#define	I2O_CLASS_ID_getOrganizationID(x)\
61096554Sobrien		_F_get16bit(x,Class,2,OrganizationID)
61196615Sobrien#define	I2O_CLASS_ID_setOrganizationID(x,y)\
61296554Sobrien		_F_set16bit(x,Class,2,OrganizationID,y)
61365312Smsmith
61465312Smsmith/*
61565312Smsmith * I2O_SET_SYSTAB_HEADER
61665312Smsmith */
61796615Sobrien#define	I2O_SET_SYSTAB_HEADER_getNumberEntries(x)\
61896554Sobrien		getU1((&((x)->NumberEntries)),0)
61996615Sobrien#define	I2O_SET_SYSTAB_HEADER_setNumberEntries(x,y)\
62096554Sobrien		setU1((&(x)->NumberEntries),0,y)
62196615Sobrien#define	I2O_SET_SYSTAB_HEADER_getSysTabVersion(x)\
62296554Sobrien		getU1((&((x)->SysTabVersion)),0)
62396615Sobrien#define	I2O_SET_SYSTAB_HEADER_setSysTabVersion(x,y)\
62496554Sobrien		setU1((&(x)->SysTabVersion),0,y)
62565312Smsmith/*  U16 reserved		*/
62665312Smsmith/*  U32 CurrentChangeIndicator	*/
62765312Smsmith
62865312Smsmith
62965312Smsmith
63065312Smsmith
63165312Smsmith/*
63265312Smsmith * I2O_IOP_ENTRY
63365312Smsmith */
63496615Sobrien#define	I2O_IOP_ENTRY_getOrganizationID(x)\
63596554Sobrien		getLU2((&((x)->OrganizationID)),0)
63696615Sobrien#define	I2O_IOP_ENTRY_setOrganizationID(x,y)\
63796554Sobrien		setLU2((&((x)->OrganizationID)),0,y)
63896551Sobrien/* #define	I2O_IOP_ENTRY_getreserved U16; */
63996615Sobrien#define	I2O_IOP_ENTRY_getIOP_ID(x)\
64096554Sobrien		_F_get12bit(x,IOP_ID,0,IOP_ID)
64196615Sobrien#define	I2O_IOP_ENTRY_setIOP_ID(x,y)\
64296554Sobrien		_F_set12bit(x,IOP_ID,0,IOP_ID,y)
64396554Sobrien/*   BF				 reserved3:I2O_RESERVED_4BITS;	*/
64496554Sobrien/*   BF				 reserved1:I2O_RESERVED_16BITS; */
64596615Sobrien#define	I2O_IOP_ENTRY_getSegmentNumber(x)\
64696554Sobrien		_F_get12bit(x,SegmentNumber,0,SegmentNumber)
64796615Sobrien#define	I2O_IOP_ENTRY_setSegmentNumber(x,y)\
64896554Sobrien		_F_set12bit(x,SegmentNumber,0,SegmentNumber,y)
64996615Sobrien#define	I2O_IOP_ENTRY_getI2oVersion(x)\
65096554Sobrien		_F_get4bit4(x,SegmentNumber,1,I2oVersion)
65196615Sobrien#define	I2O_IOP_ENTRY_setI2oVersion(x,y)\
65296554Sobrien		_F_set4bit4(x,SegmentNumber,1,I2oVersion,y)
65396615Sobrien#define	I2O_IOP_ENTRY_getIopState(x)\
65496554Sobrien		_F_get8bit(x,SegmentNumber,2,IopState)
65596615Sobrien#define	I2O_IOP_ENTRY_setIopState(x,y)\
65696554Sobrien		_F_set8bit(x,SegmentNumber,2,IopState,y)
65796615Sobrien#define	I2O_IOP_ENTRY_getMessengerType(x)\
65896554Sobrien		_F_get8bit(x,SegmentNumber,3,MessengerType)
65996615Sobrien#define	I2O_IOP_ENTRY_setMessengerType(x,y)\
66096554Sobrien		_F_set8bit(x,SegmentNumber,3,MessengerType,y)
66196615Sobrien#define	I2O_IOP_ENTRY_getInboundMessageFrameSize(x)\
66296554Sobrien		getLU2((&((x)->InboundMessageFrameSize)),0)
66396615Sobrien#define	I2O_IOP_ENTRY_setInboundMessageFrameSize(x,y)\
66496554Sobrien		setLU2((&((x)->InboundMessageFrameSize)),0,y)
66596615Sobrien#define	I2O_IOP_ENTRY_getreserved2(x)\
66696554Sobrien		getLU2((&((x)->reserved2)),0)
66796615Sobrien#define	I2O_IOP_ENTRY_setreserved2(x,y)\
66896554Sobrien		setLU2((&((x)->reserved2)),0,y)
66996615Sobrien#define	I2O_IOP_ENTRY_getLastChanged(x)\
67096554Sobrien		getLU4((&((x)->LastChanged)),0)
67196615Sobrien#define	I2O_IOP_ENTRY_setLastChanged(x,y)\
67296554Sobrien		setLU4((&((x)->LastChanged)),0,y)
67396615Sobrien#define	I2O_IOP_ENTRY_getIopCapabilities(x)\
67496554Sobrien		getLU4((&((x)->IopCapabilities)),0)
67596615Sobrien#define	I2O_IOP_ENTRY_setIopCapabilities(x,y)\
67696554Sobrien		setLU4((&((x)->IopCapabilities)),0,y)
67765312Smsmith
67865312Smsmith/* might want to declare I2O_MESSENGER_INFO struct */
67965312Smsmith
68096615Sobrien#define	I2O_IOP_ENTRY_getInboundMessagePortAddressLow(x)\
68196554Sobrien		getLU4((&((x)->MessengerInfo.InboundMessagePortAddressLow)),0)
68296615Sobrien#define	I2O_IOP_ENTRY_setInboundMessagePortAddressLow(x,y)\
68396554Sobrien		setLU4((&((x)->MessengerInfo.InboundMessagePortAddressLow)),0,y)
68465312Smsmith
68596615Sobrien#define	I2O_IOP_ENTRY_getInboundMessagePortAddressHigh(x)\
68696554Sobrien		getLU4((&((x)->MessengerInfo.InboundMessagePortAddressHigh)),0)
68796615Sobrien#define	I2O_IOP_ENTRY_setInboundMessagePortAddressHigh(x,y)\
68896554Sobrien		setLU4((&((x)->MessengerInfo.InboundMessagePortAddressHigh)),0,y)
68965312Smsmith
69065312Smsmith/*
69165312Smsmith *  I2O_HRT
69265312Smsmith */
69396615Sobrien#define	I2O_HRT_getNumberEntries(x)\
69496554Sobrien		getLU2((&((x)->NumberEntries)),0)
69596615Sobrien#define	I2O_HRT_setNumberEntries(x,y)\
69696554Sobrien		setLU2((&(x)->NumberEntries),0,y)
69796615Sobrien#define	I2O_HRT_getEntryLength(x)\
69896554Sobrien		getU1((&(x)->EntryLength),0)
69996615Sobrien#define	I2O_HRT_setEntryLength(x,y)\
70096554Sobrien		setU1((&(x)->EntryLength),0,y)
70196615Sobrien#define	I2O_HRT_getHRTVersion(x)\
70296554Sobrien		getU1((&(x)->HRTVersion),0)
70396615Sobrien#define	I2O_HRT_setHRTVersion(x,y)\
70496554Sobrien		setU1((&(x)->HRTVersion),0,y)
70596615Sobrien#define	I2O_HRT_getCurrentChangeIndicator(x)\
70696554Sobrien		getLU4((&(x)->CurrentChangeIndicator),0)
70796615Sobrien#define	I2O_HRT_setCurrentChangeIndicator(x,y)\
70896554Sobrien		setLU4((&(x)->CurrentChangeIndicator),0,y)
70996615Sobrien#define	I2O_HRT_getHRTEntryPtr(x,y)\
71096554Sobrien		((&((x)->HRTEntry[0+y])))
71165312Smsmith
71265312Smsmith/*
71365312Smsmith *  I2O_HRT_ENTRY
71465312Smsmith */
71596615Sobrien#define	I2O_HRT_ENTRY_getAdapterID(x)\
71696554Sobrien		getLU4((&((x)->AdapterID)),0)
71796615Sobrien#define	I2O_HRT_ENTRY_setAdapterID(x,y)\
71896554Sobrien		setLU4((&(x)->AdapterID),0,y)
71996615Sobrien#define	I2O_HRT_ENTRY_getControllingTID(x)\
72096554Sobrien		_F_get12bit(x,ControllingTID,ControllingTID)
72196615Sobrien#define	I2O_HRT_ENTRY_setControllingTID(x,y)\
72296554Sobrien		_F_set12bit(x,ControllingTID,ControllingTID,y)
72396615Sobrien#define	I2O_HRT_ENTRY_getAdapterState(x)\
72496554Sobrien		_F_get4bit4(x,ControllingTID,1,AdapterState)
72596615Sobrien#define	I2O_HRT_ENTRY_setIAdapterState(x,y)\
72696554Sobrien		_F_set4bit4(x,ControllingTID,1,AdapterState,y)
72796615Sobrien#define	I2O_HRT_ENTRY_getBusNumber(x)\
72896554Sobrien		_F_get8bit(x,ControllingTID,2,BusNumber)
72996615Sobrien#define	I2O_HRT_ENTRY_setBusNumber(x,y)\
73096554Sobrien		_F_set8bit(x,ControllingTID,2,BusNumber,y)
73196615Sobrien#define	I2O_HRT_ENTRY_getBusType(x)\
73296554Sobrien		_F_get8bit(x,ControllingTID,3,BusType)
73396615Sobrien#define	I2O_HRT_ENTRY_setBusType(x,y)\
73496554Sobrien		_F_set8bit(x,ControllingTID,3,BusType,y)
73596615Sobrien#define	I2O_HRT_ENTRY_getPCIBusPtr(x,y)\
73696554Sobrien		(&((x)->uBus.PCIBus))
73765312Smsmith
73865312Smsmith/*
73965312Smsmith *  I2O_LCT
74065312Smsmith */
74196615Sobrien#define	I2O_LCT_getTableSize(x)\
74296554Sobrien		_F_get16bit(x,TableSize,0,TableSize)
74396615Sobrien#define	I2O_LCT_setTableSize(x,y)\
74496554Sobrien		_F_set16bit(x,TableSize,0,TableSize,y)
74596615Sobrien#define	I2O_LCT_getBootDeviceTID(x)\
74696554Sobrien		_F_get12bit(x,TableSize,2,BootDeviceTID)
74796615Sobrien#define	I2O_LCT_setBootDeviceTID(x,y)\
74896554Sobrien		_F_set12bit(x,TableSize,2,BootDeviceTID,y)
74996615Sobrien#define	I2O_LCT_getLctVer(x)\
75096554Sobrien		_F_get4bit4(x,TableSize,3,LctVer)
75196615Sobrien#define	I2O_LCT_setLctVer(x,y)\
75296554Sobrien		_F_set4bit4(x,TableSize,3,LctVer,y)
75396615Sobrien#define	I2O_LCT_getIopFlags(x)\
75496554Sobrien		getLU4((&(x)->IopFlags),0)
75596615Sobrien#define	I2O_LCT_setIopFlags(x,y)\
75696554Sobrien		setLU4((&(x)->IopFlags),0,y)
75796615Sobrien#define	I2O_LCT_getCurrentChangeIndicator(x)\
75896554Sobrien		getLU4((&(x)->CurrentChangeIndicator),0)
75996615Sobrien#define	I2O_LCT_setCurrentChangeIndicator(x,y)\
76096554Sobrien		setLU4((&(x)->CurrentChangeIndicator),0,y)
76196615Sobrien#define	I2O_LCT_getLCTEntryPtr(x,y)\
76296554Sobrien		(&((x)->LCTEntry[0+y]))
76365312Smsmith
76465312Smsmith/*
76565312Smsmith *  I2O_LCT_ENTRY
76665312Smsmith */
76796615Sobrien#define	I2O_LCT_ENTRY_getTableEntrySize(x)\
76896554Sobrien		_F_get16bit(x,TableEntrySize,0,TableEntrySize)
76996615Sobrien#define	I2O_LCT_ENTRY_setTableEntrySize(x,y)\
77096554Sobrien		_F_set16bit(x,TableEntrySize,0,TableEntrySize,y)
77196615Sobrien#define	I2O_LCT_ENTRY_getLocalTID(x)\
77296554Sobrien		_F_get12bit(x,TableEntrySize,2,LocalTID)
77396615Sobrien#define	I2O_LCT_ENTRY_setLocalTID(x,y)\
77496554Sobrien		_F_set12bit(x,TableEntrySize,2,LocalTID,y)
77596554Sobrien/*    BF		  4	   reserved:I2O_4BIT_VERSION_SZ; */
77696615Sobrien#define	I2O_LCT_ENTRY_getChangeIndicator(x)\
77796554Sobrien		getLU4((&(x)->ChangeIndicator),0)
77896615Sobrien#define	I2O_LCT_ENTRY_setChangeIndicator(x,y)\
77996554Sobrien		setLU4((&(x)->ChangeIndicator),0,y)
78096615Sobrien#define	I2O_LCT_ENTRY_getDeviceFlags(x)\
78196554Sobrien		getLU4((&(x)->DeviceFlags),0)
78296615Sobrien#define	I2O_LCT_ENTRY_setDeviceFlags(x,y)\
78396554Sobrien		setLU4((&(x)->DeviceFlags),0,y)
78496615Sobrien#define	I2O_LCT_ENTRY_getClassIDPtr(x)\
78596554Sobrien		(&((x)->ClassID))
78696615Sobrien#define	I2O_LCT_ENTRY_getSubClassInfo(x)\
78796554Sobrien		getLU4((&(x)->SubClassInfo),0)
78896615Sobrien#define	I2O_LCT_ENTRY_setSubClassInfo(x,y)\
78996554Sobrien		setLU4((&(x)->SubClassInfo),0,y)
79096615Sobrien#define	I2O_LCT_ENTRY_getUserTID(x)\
79196554Sobrien		_F_getTID(x,UserTID,UserTID)
79296615Sobrien#define	I2O_LCT_ENTRY_setUserTID(x,y)\
79396554Sobrien		_F_setTID(x,UserTID,UserTID,y)
79496615Sobrien#define	I2O_LCT_ENTRY_getParentTID(x)\
79596554Sobrien		_F_getTID1(x,UserTID,ParentTID)
79696615Sobrien#define	I2O_LCT_ENTRY_setParentTID(x,y)\
79796554Sobrien		_F_getTID1(x,UserTID,ParentTID,y)
79896615Sobrien#define	I2O_LCT_ENTRY_getBiosInfo(x)\
79996554Sobrien		_F_getFunc(x,UserTID,BiosInfo)
80096615Sobrien#define	I2O_LCT_ENTRY_setBiosInfo(x,y)\
80196554Sobrien		_F_setFunc(x,UserTID,BiosInfo,y)
80296554Sobrien/*  2 ulong   U8		    8	   IdentityTag[I2O_IDENTITY_TAG_SZ]; */
80396615Sobrien#define	I2O_LCT_ENTRY_getEventCapabilities(x)\
80496554Sobrien		getLU4((&(x)->EventCapabilities),0)
80596615Sobrien#define	I2O_LCT_ENTRY_setEventCapabilities(x,y)\
80696554Sobrien		setLU4((&(x)->EventCapabilities),0,y)
80765312Smsmith
80865312Smsmith/*
80965312Smsmith *  I2O_PARAM_OPERATIONS_LIST_HEADER
81065312Smsmith */
81196615Sobrien#define	I2O_PARAM_OPERATIONS_LIST_HEADER_getOperationCount(x)\
81296554Sobrien		getLU2((&(x)->OperationCount),0)
81396615Sobrien#define	I2O_PARAM_OPERATIONS_LIST_HEADER_setOperationCount(x,y)\
81496554Sobrien		setLU2((&(x)->OperationCount),0,y)
81596615Sobrien#define	I2O_PARAM_OPERATIONS_LIST_HEADER_getReserved(x)\
81696554Sobrien		getLU2((&(x)->Reserved),0)
81796615Sobrien#define	I2O_PARAM_OPERATIONS_LIST_HEADER_setReserved(x,y)\
81896554Sobrien		setLU2((&(x)->Reserved),0,y)
81965312Smsmith
82065312Smsmith/*
82165312Smsmith *  I2O_PARAM_OPERATION_ALL_TEMPLATE
82265312Smsmith */
82396615Sobrien#define	I2O_PARAM_OPERATION_ALL_TEMPLATE_getOperation(x)\
82496554Sobrien		getLU2((&(x)->Operation),0)
82596615Sobrien#define	I2O_PARAM_OPERATION_ALL_TEMPLATE_setOperation(x,y)\
82696554Sobrien		setLU2((&(x)->Operation),0,y)
82796615Sobrien#define	I2O_PARAM_OPERATION_ALL_TEMPLATE_getGroupNumber(x)\
82896554Sobrien		getLU2((&(x)->GroupNumber),0)
82996615Sobrien#define	I2O_PARAM_OPERATION_ALL_TEMPLATE_setGroupNumber(x,y)\
83096554Sobrien		setLU2((&(x)->GroupNumber),0,y)
83196615Sobrien#define	I2O_PARAM_OPERATION_ALL_TEMPLATE_getFieldCount(x)\
83296554Sobrien		getLU2((&(x)->FieldCount),0)
83396615Sobrien#define	I2O_PARAM_OPERATION_ALL_TEMPLATE_setFieldCount(x,y)\
83496554Sobrien		setLU2((&(x)->FieldCount),0,y)
83565312Smsmith
83665312Smsmith/*
83765312Smsmith *  I2O_PARAM_RESULTS_LIST_HEADER
83865312Smsmith */
83996615Sobrien#define	I2O_PARAM_RESULTS_LIST_HEADER_getResultCount(x)\
84096554Sobrien		getLU2((&(x)->ResultCount),0)
84196615Sobrien#define	I2O_PARAM_RESULTS_LIST_HEADER_setResultCount(x,y)\
84296554Sobrien		setLU2((&(x)->ResultCount),0,y)
84396615Sobrien#define	I2O_PARAM_RESULTS_LIST_HEADER_getReserved(x)\
84496554Sobrien		getLU2((&(x)->Reserved),0)
84596615Sobrien#define	I2O_PARAM_RESULTS_LIST_HEADER_setReserved(x,y)\
84696554Sobrien		setLU2((&(x)->Reserved),0,y)
84765312Smsmith
84865312Smsmith/*  later
84965312Smsmith *  I2O_HBA_ADAPTER_RESET_MESSAGE
85065312Smsmith */
85165312Smsmith
85265312Smsmith
85365312Smsmith/*  LATER
85465312Smsmith *  I2O_SCSI_DEVICE_RESET_MESSAGE
85565312Smsmith */
85665312Smsmith
85765312Smsmith
85865312Smsmith/*  LATER
85965312Smsmith *  I2O_HBA_BUS_RESET_MESSAGE
86065312Smsmith */
86165312Smsmith
86265312Smsmith
86365312Smsmith/*
86465312Smsmith *  I2O_EXEC_LCT_NOTIFY_MESSAGE
86565312Smsmith */
86696554Sobrien/*    I2O_MESSAGE_FRAME		  StdMessageFrame; */
86796554Sobrien/*    I2O_TRANSACTION_CONTEXT	  TransactionContext; */
86896615Sobrien#define	I2O_EXEC_LCT_NOTIFY_MESSAGE_getClassIdentifier(x)\
86996554Sobrien		getLU4((&(x)->ClassIdentifier),0)
87096615Sobrien#define	I2O_EXEC_LCT_NOTIFY_MESSAGE_setClassIdentifier(x,y)\
87196554Sobrien		setLU4((&(x)->ClassIdentifier),0,y)
87296615Sobrien#define	I2O_EXEC_LCT_NOTIFY_MESSAGE_getLastReportedChangeIndicator(x)\
87396554Sobrien		getLU4((&(x)->LastReportedChangeIndicator),0)
87496615Sobrien#define	I2O_EXEC_LCT_NOTIFY_MESSAGE_setLastReportedChangeIndicator(x,y)\
87596554Sobrien		setLU4((&(x)->LastReportedChangeIndicator),0,y)
87696554Sobrien/*    I2O_SG_ELEMENT		  SGL; */
87765312Smsmith
87865312Smsmith
87965312Smsmith
88065312Smsmith/*
88165312Smsmith *  I2O_UTIL_PARAMS_GET_MESSAGE
88265312Smsmith */
88396554Sobrien/*     I2O_MESSAGE_FRAME	  StdMessageFrame;	*/
88496554Sobrien/*     I2O_TRANSACTION_CONTEXT	  TransactionContext;	*/
88596615Sobrien#define	I2O_UTIL_PARAMS_GET_MESSAGE_getOperationFlags(x)\
88696554Sobrien		getLU4((&(x)->OperationFlags),0)
88796615Sobrien#define	I2O_UTIL_PARAMS_GET_MESSAGE_setOperationFlags(x,y)\
88896554Sobrien		setLU4((&(x)->OperationFlags),0,y)
88996554Sobrien/*     I2O_SG_ELEMENT		  SGL;			*/
89065312Smsmith
89165312Smsmith
89265312Smsmith/*
89365312Smsmith *  I2O_SCSI_SCB_ABORT_MESSAGE
89465312Smsmith */
89596615Sobrien#define	I2O_SCSI_SCB_ABORT_MESSAGE_getStdMessageFramePtr(x)\
89696554Sobrien		(&((x)->StdMessageFrame))
89796615Sobrien#define	I2O_SCSI_SCB_ABORT_MESSAGE_getTransactionContext(x)\
89896554Sobrien		(x)->TransactionContext
89996615Sobrien#define	I2O_SCSI_SCB_ABORT_MESSAGE_setTransactionContext(x,y)\
90096554Sobrien		((x)->TransactionContext = (y))
90196615Sobrien#define	I2O_SCSI_SCB_ABORT_MESSAGE_getTransactionContextToAbort(x)\
90296554Sobrien		(x)->TransactionContextToAbort
90396615Sobrien#define	I2O_SCSI_SCB_ABORT_MESSAGE_setTransactionContextToAbort(x,y)\
90496554Sobrien		((x)->TransactionContextToAbort = (y))
90565312Smsmith
90665312Smsmith
90765312Smsmith/*
90865312Smsmith *  I2O_DPT_DEVICE_INFO_SCALAR
90965312Smsmith */
91096615Sobrien#define	I2O_DPT_DEVICE_INFO_SCALAR_getDeviceType(x)\
91196554Sobrien		getU1((&(x)->DeviceType),0)
91296615Sobrien#define	I2O_DPT_DEVICE_INFO_SCALAR_setDeviceType(x,y)\
91396554Sobrien		setU1((&(x)->DeviceType),0,y)
91496615Sobrien#define	I2O_DPT_DEVICE_INFO_SCALAR_getFlags(x)\
91596554Sobrien		getU1((&(x)->Flags),0)
91696615Sobrien#define	I2O_DPT_DEVICE_INFO_SCALAR_setFlags(x,y)\
91796554Sobrien		setU1((&(x)->Flags),0,y)
91896615Sobrien#define	I2O_DPT_DEVICE_INFO_SCALAR_getBus(x)\
91996554Sobrien		getLU2((&(x)->Bus),0)
92096615Sobrien#define	I2O_DPT_DEVICE_INFO_SCALAR_setBus(x,y)\
92196554Sobrien		setLU2((&(x)->Bus),0,y)
92296615Sobrien#define	I2O_DPT_DEVICE_INFO_SCALAR_getIdentifier(x)\
92396554Sobrien		getLU4((&(x)->Identifier),0)
92496615Sobrien#define	I2O_DPT_DEVICE_INFO_SCALAR_setIdentifier(x,y)\
92596554Sobrien		setLU4((&(x)->Identifier),0,y)
92696554Sobrien/*     U8	  LunInfo[8]; *//* SCSI-2 8-bit scalar LUN goes into offset 1 */
92796615Sobrien#define	I2O_DPT_DEVICE_INFO_SCALAR_getLunInfo(x)\
92896554Sobrien		getU1((&(x)->LunInfo[0]),1)
92996615Sobrien#define	I2O_DPT_DEVICE_INFO_SCALAR_setLunInfo(x,y)\
93096554Sobrien		setU1((&(x)->LunInfo[0]),1,y)
93165312Smsmith
93265312Smsmith/*
93396554Sobrien *	 I2O_DPT_EXEC_IOP_BUFFERS_SCALAR
93465312Smsmith */
93596615Sobrien#define	I2O_DPT_EXEC_IOP_BUFFERS_SCALAR_getSerialOutputOffset(x)\
93696554Sobrien		getLU4((&(x)->SerialOutputOffset),0)
93796615Sobrien#define	I2O_DPT_EXEC_IOP_BUFFERS_SCALAR_getSerialOutputSizet(x)\
93896554Sobrien		getLU4((&(x)->SerialOutputSize),0)
93996615Sobrien#define	I2O_DPT_EXEC_IOP_BUFFERS_SCALAR_getSerialHeaderSize(x)\
94096554Sobrien		getLU4((&(x)->SerialHeaderSize),0)
94196615Sobrien#define	I2O_DPT_EXEC_IOP_BUFFERS_SCALAR_getSerialFlagsSupported(x)\
94296554Sobrien		getLU4((&(x)->SerialFlagsSupported),0)
94365312Smsmith
94465312Smsmith/*
94565312Smsmith *  I2O_PRIVATE_MESSAGE_FRAME
94665312Smsmith */
94765312Smsmith/* typedef struct _I2O_PRIVATE_MESSAGE_FRAME { */
94896554Sobrien/*    I2O_MESSAGE_FRAME		  StdMessageFrame; */
94996554Sobrien/*    I2O_TRANSACTION_CONTEXT	  TransactionContext; */
95096554Sobrien/*    U16			  XFunctionCode; */
95196554Sobrien/*    U16			  OrganizationID; */
95296554Sobrien/*				  PrivatePayload[]; */
95365312Smsmith/* } I2O_PRIVATE_MESSAGE_FRAME, *PI2O_PRIVATE_MESSAGE_FRAME; */
95496615Sobrien#define	I2O_PRIVATE_MESSAGE_FRAME_getTransactionContext(x) \
95596554Sobrien		(x)->TransactionContext
95696615Sobrien#define	I2O_PRIVATE_MESSAGE_FRAME_setTransactionContext(x,y) \
95796554Sobrien		((x)->TransactionContext = (y))
95896615Sobrien#define	I2O_PRIVATE_MESSAGE_FRAME_getXFunctionCode(x) \
95996554Sobrien		getLU2((&(x)->XFunctionCode),0)
96096615Sobrien#define	I2O_PRIVATE_MESSAGE_FRAME_setXFunctionCode(x,y) \
96196554Sobrien		setLU2((&(x)->XFunctionCode),0,y)
96296615Sobrien#define	I2O_PRIVATE_MESSAGE_FRAME_getOrganizationID(x) \
96396554Sobrien		getLU2((&(x)->OrganizationID),0)
96496615Sobrien#define	I2O_PRIVATE_MESSAGE_FRAME_setOrganizationID(x,y) \
96596554Sobrien		setLU2((&(x)->OrganizationID),0,y)
96687826Sobrien#if 0
96787826Sobrientypedef struct _PRIVATE_SCSI_SCB_EXECUTE_MESSAGE {
96887826Sobrien	I2O_PRIVATE_MESSAGE_FRAME PRIVATE_SCSI_SCB_EXECUTE_MESSAGE;
96996554Sobrien	BF			  TID:16; /* Upper four bits currently are zero */
97087826Sobrien	/* Command is interpreted by the host */
97196554Sobrien	BF			  Interpret:1;
97287826Sobrien	/* if TRUE, deal with Physical Firmware Array information */
97396554Sobrien	BF			  Physical:1;
97496554Sobrien	BF			  Reserved1:14;
97596554Sobrien	U8			  CDBLength;
97696554Sobrien	U8			  Reserved;
97796554Sobrien	I2O_SCB_FLAGS		  SCBFlags;
97896554Sobrien	U8			  CDB[	I2O_SCSI_CDB_LENGTH=16	];
97996554Sobrien	U32			  ByteCount;
98096554Sobrien	I2O_SG_ELEMENT		  SGL;
98187826Sobrien} PRIVATE_SCSI_SCB_EXECUTE_MESSAGE, * PPRIVATE_SCSI_SCB_EXECUTE_MESSAGE;
98287826Sobrien#endif
98365312Smsmith/*
98496554Sobrien *	 PRIVATE_SCSI_SCB_EXECUTE_MESSAGE
98565312Smsmith */
98696615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_getPRIVATE_SCSI_SCB_EXECUTE_MESSAGEPtr(x)\
98796554Sobrien		(&((x)->PRIVATE_SCSI_SCB_EXECUTE_MESSAGE))
98896615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_getCDBLength(x)\
98996554Sobrien		getU1((&(x)->CDBLength),0)
99096615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_setCDBLength(x,y)\
99196554Sobrien		setU1((&(x)->CDBLength),0,y)
99296615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_getReserved(x)\
99396554Sobrien		getU1((&(x)->Reserved),0)
99496615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_setReserved(x,y)\
99596554Sobrien		setU1((&(x)->Reserved),0,y)
99696615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_getSCBFlags(x)\
99796554Sobrien		getLU2((&(x)->SCBFlags),0)
99896615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_setSCBFlags(x,y)\
99996554Sobrien		setLU2((&(x)->SCBFlags),0,y)
100096615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_getByteCount(x)\
100196554Sobrien		getLU4((&((x)->ByteCount)),0)
100296615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_setByteCount(x,y)\
100396554Sobrien		setLU4((&((x)->ByteCount)),0,y)
100496615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_getTID(x)\
100596554Sobrien		_F_get16bit(x,TID,0,TID)
100696615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_setTID(x,y)\
100796554Sobrien		_F_set16bit(x,TID,0,TID,y)
100896615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_getInterpret(x)\
100996554Sobrien		_F_get1bit(x,TID,2,Interpret)
101096615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_setInterpret(x,y)\
101196554Sobrien		_F_set1bit(x,TID,2,Interpret,y)
101296615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_getPhysical(x)\
101396554Sobrien		_F_get1bit1(x,TID,2,Physical)
101496615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_setPhysical(x,y)\
101596554Sobrien		_F_set1bit1(x,TID,2,Physical,y)
101696615Sobrien#define	PRIVATE_SCSI_SCB_EXECUTE_MESSAGE_getCDBPtr(x)\
101796554Sobrien		(&((x)->CDB[0]))
101865312Smsmith
101965312Smsmith
102065312Smsmith/*
102165312Smsmith *  PRIVATE_FLASH_REGION_MESSAGE
102265312Smsmith */
102396615Sobrien#define	PRIVATE_FLASH_REGION_MESSAGE_getFlashRegion(x) \
102496554Sobrien		getLU4((&((x)->FlashRegion)),0)
102596615Sobrien#define	PRIVATE_FLASH_REGION_MESSAGE_setFlashRegion(x,y) \
102696554Sobrien		setLU4((&((x)->FlashRegion)),0,y)
102796615Sobrien#define	PRIVATE_FLASH_REGION_MESSAGE_getRegionOffset(x) \
102896554Sobrien		getLU4((&((x)->RegionOffset)),0)
102996615Sobrien#define	PRIVATE_FLASH_REGION_MESSAGE_setRegionOffset(x,y) \
103096554Sobrien		setLU4((&((x)->RegionOffset)),0,y)
103196615Sobrien#define	PRIVATE_FLASH_REGION_MESSAGE_getByteCount(x) \
103296554Sobrien		getLU4((&((x)->ByteCount)),0)
103396615Sobrien#define	PRIVATE_FLASH_REGION_MESSAGE_setByteCount(x,y) \
103496554Sobrien		setLU4((&((x)->ByteCount)),0,y)
103565312Smsmith
103665312Smsmith/*
103765312Smsmith *  I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR
103865312Smsmith */
103996615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_getSCSIType(x)\
104096554Sobrien		getU1((&(x)->SCSIType),0)
104196615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_setSCSIType(x,y)\
104296554Sobrien		setU1((&(x)->SCSIType),0,y)
104396615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_getProtectionManagement(x)\
104496554Sobrien		getU1((&(x)->ProtectionManagement),0)
104596615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_setProtectionManagement(x,y)\
104696554Sobrien		setU1((&(x)->ProtectionManagement),0,y)
104796615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_getSettings(x)\
104896554Sobrien		getU1((&(x)->Settings),0)
104996615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_setSettings(x,y)\
105096554Sobrien		setU1((&(x)->Settings),0,y)
105196615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_getReserved1(x)\
105296554Sobrien		getU1((&(x)->Reserved1),0)
105396615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_setReserved1(x,y)\
105496554Sobrien		setU1((&(x)->Reserved1),0,y)
105596615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_getInitiatorID(x)\
105696554Sobrien		getLU4((&(x)->InitiatorID),0)
105796615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_setInitiatorID(x,y)\
105896554Sobrien		setLU4((&(x)->InitiatorID),0,y)
105996615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_getScanLun0Only(x)\
106096554Sobrien		getLU4((&(x)->ScanLun0Only),0)
106196615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_setScanLun0Only(x,y)\
106296554Sobrien		setLU4((&(x)->ScanLun0Only),0,y)
106396615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_getDisableDevice(x)\
106496554Sobrien		getLU2((&(x)->DisableDevice),0)
106596615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_setDisableDevice(x,y)\
106696554Sobrien		setLU2((&(x)->DisableDevice),0,y)
106796615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_getMaxOffset(x)\
106896554Sobrien		getU1((&(x)->MaxOffset),0)
106996615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_setMaxOffset(x,y)\
107096554Sobrien		setU1((&(x)->MaxOffset),0,y)
107196615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_getMaxDataWidth(x)\
107296554Sobrien		getU1((&(x)->MaxDataWidth),0)
107396615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_setMaxDataWidth(x,y)\
107496554Sobrien		setU1((&(x)->MaxDataWidth),0,y)
107596615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_getMaxSyncRate(x)\
107696554Sobrien		getLU4((&(x)->MaxSyncRate),0)
107796615Sobrien#define	I2O_HBA_SCSI_CONTROLLER_INFO_SCALAR_setMaxSyncRate(x,y)\
107896554Sobrien		setLU4((&(x)->MaxSyncRate),0,y)
107965312Smsmith
108065312Smsmith/*
108165312Smsmith *  I2O_SCSI_ERROR_REPLY_MESSAGE_FRAME
108265312Smsmith */
108396615Sobrien#define	I2O_SCSI_ERROR_REPLY_MESSAGE_FRAME_getStdReplyFramePtr(x)\
108496554Sobrien		(&((x)->StdReplyFrame))
108596615Sobrien#define	I2O_SCSI_ERROR_REPLY_MESSAGE_FRAME_getTransferCount(x)\
108696554Sobrien		getLU4((&(x)->TransferCount),0)
108796615Sobrien#define	I2O_SCSI_ERROR_REPLY_MESSAGE_FRAME_setTransferCount(x,y)\
108896554Sobrien		setLU4((&(x)->TransferCount),0,y)
108996615Sobrien#define	I2O_SCSI_ERROR_REPLY_MESSAGE_FRAME_getAutoSenseTransferCount(x)\
109096554Sobrien		getLU4((&(x)->AutoSenseTransferCount),0)
109196615Sobrien#define	I2O_SCSI_ERROR_REPLY_MESSAGE_FRAME_setAutoSenseTransferCount(x,y)\
109296554Sobrien		setLU4((&(x)->AutoSenseTransferCount),0,y)
109365312Smsmith
109465312Smsmith/*
109565312Smsmith *  I2O_SINGLE_REPLY_MESSAGE_FRAME
109665312Smsmith */
109796615Sobrien#define	I2O_SINGLE_REPLY_MESSAGE_FRAME_getStdMessageFramePtr(x)\
109896554Sobrien		(&((x)->StdMessageFrame))
109996615Sobrien#define	I2O_SINGLE_REPLY_MESSAGE_FRAME_getTransactionContext(x)\
110096554Sobrien		(x)->TransactionContext
110196615Sobrien#define	I2O_SINGLE_REPLY_MESSAGE_FRAME_setTransactionContext(x,y)\
110296554Sobrien		((x)->TransactionContext = (y))
110396615Sobrien#define	I2O_SINGLE_REPLY_MESSAGE_FRAME_getDetailedStatusCode(x)\
110496554Sobrien		getLU2((&((x)->DetailedStatusCode)),0)
110596615Sobrien#define	I2O_SINGLE_REPLY_MESSAGE_FRAME_setDetailedStatusCode(x,y)\
110696554Sobrien		setLU2((&((x)->DetailedStatusCode)),0,y)
110796615Sobrien#define	I2O_SINGLE_REPLY_MESSAGE_FRAME_getreserved(x)\
110896554Sobrien		getU1((&((x)->reserved)),0)
110996615Sobrien#define	I2O_SINGLE_REPLY_MESSAGE_FRAME_setreserved(x,y)\
111096554Sobrien		setU1((&((x)->reserved)),0,y)
111196615Sobrien#define	I2O_SINGLE_REPLY_MESSAGE_FRAME_getReqStatus(x)\
111296554Sobrien		getU1((&((x)->ReqStatus)),0)
111396615Sobrien#define	I2O_SINGLE_REPLY_MESSAGE_FRAME_setReqStatus(x,y)\
111496554Sobrien		setU1((&((x)->ReqStatus)),0,y)
111565312Smsmith
111665312Smsmith
111765312Smsmith/*
111865312Smsmith *  I2O_SCSI_SCB_EXECUTE_MESSAGE
111965312Smsmith */
112096615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_getStdMessageFramePtr(x)\
112196554Sobrien		(&((x)->StdMessageFrame))
112296615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_getTransactionContext(x)\
112396554Sobrien		(x)->TransactionContext
112496615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_setTransactionContext(x,y)\
112596554Sobrien		((x)->TransactionContext = (y))
112696615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_getCDBLength(x)\
112796554Sobrien		getU1((&((x)->CDBLength)),0)
112896615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_setCDBLength(x,y)\
112996554Sobrien		setU1((&((x)->CDBLength)),0,y)
113096615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_getReserved(x)\
113196554Sobrien		getU1((&((x)->Reserved)),0)
113296615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_setReserved(x,y)\
113396554Sobrien		setU1((&((x)->Reserved)),0,y)
113496615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_getSCBFlags(x)\
113596554Sobrien		getLU2((&((x)->SCBFlags)),0)
113696615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_setSCBFlags(x,y)\
113796554Sobrien		setLU2((&((x)->SCBFlags)),0,y)
113896615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_getByteCount(x)\
113996554Sobrien		getLU2((&((x)->ByteCount)),0)
114096615Sobrien#define	I2O_SCSI_SCB_EXECUTE_MESSAGE_setByteCount(x,y)\
114196554Sobrien		setLU2((&((x)->ByteCount)),0,y)
114265312Smsmith/*  define for these */
114396554Sobrien/*     U8		       CDB[16]; */
114496554Sobrien/*     I2O_SG_ELEMENT	       SGL;	*/
114565312Smsmith
114665312Smsmith
114765312Smsmith/*
114865312Smsmith *  I2O_FAILURE_REPLY_MESSAGE_FRAME
114965312Smsmith */
115096615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_getStdMessageFramePtr(x)\
115196554Sobrien		(&((x)->StdMessageFrame))
115296615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_getTransactionContext(x)\
115396554Sobrien		(x)->TransactionContext
115496615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_setTransactionContext(x,y)\
115596554Sobrien		((x)->TransactionContext = (y))
115696615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_getLowestVersion(x)\
115796554Sobrien		getU1((&((x)->LowestVersion)),0)
115896615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_setLowestVersion(x,y)\
115996554Sobrien		setU1((&((x)->LowestVersion)),0,y)
116096615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_getHighestVersion(x)\
116196554Sobrien		getU1((&((x)->HighestVersion)),0)
116296615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_setHighestVersion(x,y)\
116396554Sobrien		setU1((&((x)->HighestVersion)),0,y)
116496615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_getAgeLimit(x)\
116596554Sobrien		getLU4((&((x)->AgeLimit)),0)
116696615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_setAgeLimit(x,y)\
116796554Sobrien		setLU4((&((x)->AgeLimit)),0,y)
116896615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_getSeverity(x)\
116996554Sobrien		_F_get8bit(x,Severity,0,Severity)
117096615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_setSeverity(x,y)\
117196554Sobrien		_F_set8bit(x,Severity,0,Severity,y)
117296615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_getFailureCode(x)\
117396554Sobrien		_F_get8bit(x,Severity,1,FailureCode)
117496615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_setFailureCode(x,y)\
117596554Sobrien		_F_get8bit(x,Severity,1,FailureCode,y)
117665312Smsmith/*
117796551Sobrien * #define	I2O_FAILURE_REPLY_MESSAGE_FRAME_getFailingHostUnitID(x)\
117896554Sobrien *		 _F_get16bit(x,reserved,1,FailingHostUnitID)
117996551Sobrien * #define	I2O_FAILURE_REPLY_MESSAGE_FRAME_setFailingHostUnitID(x,y)\
118096554Sobrien *		 _F_set16bit(x,reserved,1,FailingHostUnitID,y)
118165312Smsmith */
118296615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_getPreservedMFA(x)\
118396554Sobrien		getLU4((&((x)->PreservedMFA)),0)
118496615Sobrien#define	I2O_FAILURE_REPLY_MESSAGE_FRAME_setPreservedMFA(x,y)\
118596554Sobrien		setLU4((&((x)->PreservedMFA)),0,y)
118665312Smsmith
118765312Smsmith
118865312Smsmith
118965312Smsmith/*
119065312Smsmith *  I2O_EXEC_STATUS_GET_REPLY
119165312Smsmith */
119296615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getOrganizationID(x)\
119396554Sobrien		getLU2((&(x)->OrganizationID),0)
119496615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setOrganizationID(x,y)\
119596554Sobrien		setLU2((&(x)->OrganizationID),0,y)
119696551Sobrien/* #define	I2O_EXEC_STATUS_GET_REPLY_getreserved; */
119796615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getIOP_ID(x)\
119896554Sobrien		_F_get12bit(x,IOP_ID,0,IOP_ID)
119996615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setIOP_ID(x,y)\
120096554Sobrien		_F_set12bit(x,IOP_ID,0,IOP_ID,y)
120196551Sobrien/* #define	I2O_EXEC_STATUS_GET_REPLY_getreserved1(x) */
120296615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getHostUnitID(x)\
120396554Sobrien		_F_get16bit(x,IOP_ID,2,HostUnitID)
120496615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setHostUnitID(x,y)\
120596554Sobrien		_F_set16bit(x,IOP_ID,2,HostUnitID,y)
120696615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getSegmentNumber(x)\
120796554Sobrien		_F_get12bit(x,SegmentNumber,0,SegmentNumber)
120896615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setSegmentNumber(x,y)\
120996554Sobrien		_F_set12bit(x,SegmentNumber,0,SegmentNumber,y)
121096615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getI2oVersion(x)\
121196554Sobrien		_F_get4bit4(x,SegmentNumber,1,I2oVersion)
121296615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setI2oVersion(x,y)\
121396554Sobrien		_F_set4bit4(x,SegmentNumber,1,I2oVersion,y)
121496615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getIopState(x)\
121596554Sobrien		_F_get8bit(x,SegmentNumver,2,IopState)
121696615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setIopState(x,y)\
121796554Sobrien		_F_set8bit(x,SegmentNumver,2,IopState,y)
121896615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getMessengerType(x)\
121996554Sobrien		_F_get8bit(x,SegmentNumber,3,MessengerType)
122096615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setMessengerType(x,y)\
122196554Sobrien		_F_get8bit(x,SegmentNumber,3,MessengerType,y)
122296615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getInboundMFrameSize(x)\
122396554Sobrien		getLU2((&(x)->InboundMFrameSize),0)
122496615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setInboundMFrameSize(x,y)\
122596554Sobrien		setLU2((&(x)->InboundMFrameSize),0,y)
122696615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getInitCode(x)\
122796554Sobrien		getU1((&(x)->InitCode),0)
122896615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setInitCode(x,y)\
122996554Sobrien		setU1((&(x)->InitCode),0,y)
123096551Sobrien/* #define	I2O_EXEC_STATUS_GET_REPLY_getreserved2(x) */
123196615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getMaxInboundMFrames(x)\
123296554Sobrien		getLU4((&(x)->MaxInboundMFrames),0)
123396615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setMaxInboundMFrames(x,y)\
123496554Sobrien		setLU4((&(x)->MaxInboundMFrames),0,y)
123596615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getCurrentInboundMFrames(x)\
123696554Sobrien		getLU4((&(x)->CurrentInboundMFrames),0)
123796615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setCurrentInboundMFrames(x,y)\
123896554Sobrien		setLU4((&(x)->CurrentInboundMFrames),0,y)
123996615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getMaxOutboundMFrames(x)\
124096554Sobrien		getLU4((&(x)->MaxOutboundMFrames),0)
124196615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setMaxOutboundMFrames(x,y)\
124296554Sobrien		setLU4((&(x)->MaxOutboundMFrames),0,y)
124396551Sobrien/* #define	I2O_EXEC_STATUS_GET_REPLY_getProductIDString(x) */
124496615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getExpectedLCTSize(x)\
124596554Sobrien		getLU4((&(x)->ExpectedLCTSize),0)
124696615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setExpectedLCTSize(x,y)\
124796554Sobrien		setLU4((&(x)->ExpectedLCTSize),0,y)
124896615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getIopCapabilities(x)\
124996554Sobrien		getLU4((&(x)->IopCapabilities),0)
125096615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setIopCapabilities(x,y)\
125196554Sobrien		setLU4((&(x)->IopCapabilities),0,y)
125296615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getDesiredPrivateMemSize(x)\
125396554Sobrien		getLU4((&(x)->DesiredPrivateMemSize),0)
125496615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setDesiredPrivateMemSize(x,y)\
125596554Sobrien		setLU4((&(x)->DesiredPrivateMemSize),0,y)
125696615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getCurrentPrivateMemSize(x)\
125796554Sobrien		getLU4((&(x)->CurrentPrivateMemSize),0)
125896615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setCurrentPrivateMemSize(x,y)\
125996554Sobrien		setLU4((&(x)->CurrentPrivateMemSize),0,y)
126096615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getCurrentPrivateMemBase(x)\
126196554Sobrien		getLU4((&(x)->CurrentPrivateMemBase),0)
126296615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setCurrentPrivateMemBase(x,y)\
126396554Sobrien		setLU4((&(x)->CurrentPrivateMemBase),0,y)
126496615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getDesiredPrivateIOSize(x)\
126596554Sobrien		getLU4((&(x)->DesiredPrivateIOSize),0)
126696615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setDesiredPrivateIOSize(x,y)\
126796554Sobrien		setLU4((&(x)->DesiredPrivateIOSize),0,y)
126896615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getCurrentPrivateIOSize(x)\
126996554Sobrien		getLU4((&(x)->CurrentPrivateIOSize),0)
127096615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setCurrentPrivateIOSize(x,y)\
127196554Sobrien		setLU4((&(x)->CurrentPrivateIOSize),0,y)
127296615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getCurrentPrivateIOBase(x)\
127396554Sobrien		getLU4((&(x)->CurrentPrivateIOBase),0)
127496615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setCurrentPrivateIOBase(x,y)\
127596554Sobrien		setLU4((&(x)->CurrentPrivateIOBase),0,y)
127696551Sobrien/* #define	I2O_EXEC_STATUS_GET_REPLY_getreserved3(x) */
127796615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_getSyncByte(x)\
127896554Sobrien		getU1((&(x)->SyncByte),0)
127996615Sobrien#define	I2O_EXEC_STATUS_GET_REPLY_setSyncByte(x,y)\
128096554Sobrien		setU1((&(x)->SyncByte),0,y)
128165312Smsmith
128265312Smsmith
128365312Smsmith
128465312Smsmith/*
128565312Smsmith *  I2O_HBA_BUS_QUIESCE_MESSAGE
128665312Smsmith */
128796615Sobrien#define	I2O_HBA_BUS_QUIESCE_MESSAGE_getStdMessageFramePtr(x)\
128896554Sobrien		(&((x)->StdMessageFrame))
128996615Sobrien#define	I2O_HBA_BUS_QUIESCE_MESSAGE_getTransactionContext(x)\
129096554Sobrien		getBU4((&((x)->TransactionContext)),0)
129196615Sobrien#define	I2O_HBA_BUS_QUIESCE_MESSAGE_setTransactionContext(x,y)\
129296554Sobrien		setBU4((&((x)->TransactionContext)),0,y)
129396615Sobrien#define	I2O_HBA_BUS_QUIESCE_MESSAGE_getFlags(x)\
129496554Sobrien		getLU4((&(x)->Flags),0)
129596615Sobrien#define	I2O_HBA_BUS_QUIESCE_MESSAGE_setFlags(x,y)\
129696554Sobrien		setLU4((&(x)->Flags),0,y)
129765312Smsmith
129865312Smsmith
129965312Smsmith#endif /* __INCi2odeph */
1300