Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / message / fusion / lsi / mpi_inb.h
1 /*
2  *  Copyright (c) 2003-2004 LSI Logic Corporation.
3  *
4  *
5  *           Name:  mpi_inb.h
6  *          Title:  MPI Inband structures and definitions
7  *  Creation Date:  September 30, 2003
8  *
9  *    mpi_inb.h Version:  01.05.01
10  *
11  *  Version History
12  *  ---------------
13  *
14  *  Date      Version   Description
15  *  --------  --------  ------------------------------------------------------
16  *  05-11-04  01.03.01  Original release.
17  *  08-19-04  01.05.01  Original release for MPI v1.5.
18  *  --------------------------------------------------------------------------
19  */
20
21 #ifndef MPI_INB_H
22 #define MPI_INB_H
23
24 /******************************************************************************
25 *
26 *        I n b a n d    M e s s a g e s
27 *
28 *******************************************************************************/
29
30
31 /****************************************************************************/
32 /* Inband Buffer Post Request                                               */
33 /****************************************************************************/
34
35 typedef struct _MSG_INBAND_BUFFER_POST_REQUEST
36 {
37     U8                      Reserved1;          /* 00h */
38     U8                      BufferCount;        /* 01h */
39     U8                      ChainOffset;        /* 02h */
40     U8                      Function;           /* 03h */
41     U16                     Reserved2;          /* 04h */
42     U8                      Reserved3;          /* 06h */
43     U8                      MsgFlags;           /* 07h */
44     U32                     MsgContext;         /* 08h */
45     U32                     Reserved4;          /* 0Ch */
46     SGE_TRANS_SIMPLE_UNION  SGL;                /* 10h */
47 } MSG_INBAND_BUFFER_POST_REQUEST, MPI_POINTER PTR_MSG_INBAND_BUFFER_POST_REQUEST,
48   MpiInbandBufferPostRequest_t , MPI_POINTER pMpiInbandBufferPostRequest_t;
49
50
51 typedef struct _WWN_FC_FORMAT
52 {
53     U64                     NodeName;           /* 00h */
54     U64                     PortName;           /* 08h */
55 } WWN_FC_FORMAT, MPI_POINTER PTR_WWN_FC_FORMAT,
56   WwnFcFormat_t, MPI_POINTER pWwnFcFormat_t;
57
58 typedef struct _WWN_SAS_FORMAT
59 {
60     U64                     WorldWideID;        /* 00h */
61     U32                     Reserved1;          /* 08h */
62     U32                     Reserved2;          /* 0Ch */
63 } WWN_SAS_FORMAT, MPI_POINTER PTR_WWN_SAS_FORMAT,
64   WwnSasFormat_t, MPI_POINTER pWwnSasFormat_t;
65
66 typedef union _WWN_INBAND_FORMAT
67 {
68     WWN_FC_FORMAT           Fc;
69     WWN_SAS_FORMAT          Sas;
70 } WWN_INBAND_FORMAT, MPI_POINTER PTR_WWN_INBAND_FORMAT,
71   WwnInbandFormat, MPI_POINTER pWwnInbandFormat;
72
73
74 /* Inband Buffer Post reply message */
75
76 typedef struct _MSG_INBAND_BUFFER_POST_REPLY
77 {
78     U16                     Reserved1;          /* 00h */
79     U8                      MsgLength;          /* 02h */
80     U8                      Function;           /* 03h */
81     U16                     Reserved2;          /* 04h */
82     U8                      Reserved3;          /* 06h */
83     U8                      MsgFlags;           /* 07h */
84     U32                     MsgContext;         /* 08h */
85     U16                     Reserved4;          /* 0Ch */
86     U16                     IOCStatus;          /* 0Eh */
87     U32                     IOCLogInfo;         /* 10h */
88     U32                     TransferLength;     /* 14h */
89     U32                     TransactionContext; /* 18h */
90     WWN_INBAND_FORMAT       Wwn;                /* 1Ch */
91     U32                     IOCIdentifier[4];   /* 2Ch */
92 } MSG_INBAND_BUFFER_POST_REPLY, MPI_POINTER PTR_MSG_INBAND_BUFFER_POST_REPLY,
93   MpiInbandBufferPostReply_t, MPI_POINTER pMpiInbandBufferPostReply_t;
94
95
96 /****************************************************************************/
97 /* Inband Send Request                                                      */
98 /****************************************************************************/
99
100 typedef struct _MSG_INBAND_SEND_REQUEST
101 {
102     U16                     Reserved1;          /* 00h */
103     U8                      ChainOffset;        /* 02h */
104     U8                      Function;           /* 03h */
105     U16                     Reserved2;          /* 04h */
106     U8                      Reserved3;          /* 06h */
107     U8                      MsgFlags;           /* 07h */
108     U32                     MsgContext;         /* 08h */
109     U32                     Reserved4;          /* 0Ch */
110     WWN_INBAND_FORMAT       Wwn;                /* 10h */
111     U32                     Reserved5;          /* 20h */
112     SGE_IO_UNION            SGL;                /* 24h */
113 } MSG_INBAND_SEND_REQUEST, MPI_POINTER PTR_MSG_INBAND_SEND_REQUEST,
114   MpiInbandSendRequest_t , MPI_POINTER pMpiInbandSendRequest_t;
115
116
117 /* Inband Send reply message */
118
119 typedef struct _MSG_INBAND_SEND_REPLY
120 {
121     U16                     Reserved1;          /* 00h */
122     U8                      MsgLength;          /* 02h */
123     U8                      Function;           /* 03h */
124     U16                     Reserved2;          /* 04h */
125     U8                      Reserved3;          /* 06h */
126     U8                      MsgFlags;           /* 07h */
127     U32                     MsgContext;         /* 08h */
128     U16                     Reserved4;          /* 0Ch */
129     U16                     IOCStatus;          /* 0Eh */
130     U32                     IOCLogInfo;         /* 10h */
131     U32                     ResponseLength;     /* 14h */
132 } MSG_INBAND_SEND_REPLY, MPI_POINTER PTR_MSG_INBAND_SEND_REPLY,
133   MpiInbandSendReply_t, MPI_POINTER pMpiInbandSendReply_t;
134
135
136 /****************************************************************************/
137 /* Inband Response Request                                                  */
138 /****************************************************************************/
139
140 typedef struct _MSG_INBAND_RSP_REQUEST
141 {
142     U16                     Reserved1;          /* 00h */
143     U8                      ChainOffset;        /* 02h */
144     U8                      Function;           /* 03h */
145     U16                     Reserved2;          /* 04h */
146     U8                      Reserved3;          /* 06h */
147     U8                      MsgFlags;           /* 07h */
148     U32                     MsgContext;         /* 08h */
149     U32                     Reserved4;          /* 0Ch */
150     WWN_INBAND_FORMAT       Wwn;                /* 10h */
151     U32                     IOCIdentifier[4];   /* 20h */
152     U32                     ResponseLength;     /* 30h */
153     SGE_IO_UNION            SGL;                /* 34h */
154 } MSG_INBAND_RSP_REQUEST, MPI_POINTER PTR_MSG_INBAND_RSP_REQUEST,
155   MpiInbandRspRequest_t , MPI_POINTER pMpiInbandRspRequest_t;
156
157
158 /* Inband Response reply message */
159
160 typedef struct _MSG_INBAND_RSP_REPLY
161 {
162     U16                     Reserved1;          /* 00h */
163     U8                      MsgLength;          /* 02h */
164     U8                      Function;           /* 03h */
165     U16                     Reserved2;          /* 04h */
166     U8                      Reserved3;          /* 06h */
167     U8                      MsgFlags;           /* 07h */
168     U32                     MsgContext;         /* 08h */
169     U16                     Reserved4;          /* 0Ch */
170     U16                     IOCStatus;          /* 0Eh */
171     U32                     IOCLogInfo;         /* 10h */
172 } MSG_INBAND_RSP_REPLY, MPI_POINTER PTR_MSG_INBAND_RSP_REPLY,
173   MpiInbandRspReply_t, MPI_POINTER pMpiInbandRspReply_t;
174
175
176 /****************************************************************************/
177 /* Inband Abort Request                                                     */
178 /****************************************************************************/
179
180 typedef struct _MSG_INBAND_ABORT_REQUEST
181 {
182     U8                      Reserved1;          /* 00h */
183     U8                      AbortType;          /* 01h */
184     U8                      ChainOffset;        /* 02h */
185     U8                      Function;           /* 03h */
186     U16                     Reserved2;          /* 04h */
187     U8                      Reserved3;          /* 06h */
188     U8                      MsgFlags;           /* 07h */
189     U32                     MsgContext;         /* 08h */
190     U32                     Reserved4;          /* 0Ch */
191     U32                     ContextToAbort;     /* 10h */
192 } MSG_INBAND_ABORT_REQUEST, MPI_POINTER PTR_MSG_INBAND_ABORT_REQUEST,
193   MpiInbandAbortRequest_t , MPI_POINTER pMpiInbandAbortRequest_t;
194
195 #define MPI_INBAND_ABORT_TYPE_ALL_BUFFERS       (0x00)
196 #define MPI_INBAND_ABORT_TYPE_EXACT_BUFFER      (0x01)
197 #define MPI_INBAND_ABORT_TYPE_SEND_REQUEST      (0x02)
198 #define MPI_INBAND_ABORT_TYPE_RESPONSE_REQUEST  (0x03)
199
200
201 /* Inband Abort reply message */
202
203 typedef struct _MSG_INBAND_ABORT_REPLY
204 {
205     U8                      Reserved1;          /* 00h */
206     U8                      AbortType;          /* 01h */
207     U8                      MsgLength;          /* 02h */
208     U8                      Function;           /* 03h */
209     U16                     Reserved2;          /* 04h */
210     U8                      Reserved3;          /* 06h */
211     U8                      MsgFlags;           /* 07h */
212     U32                     MsgContext;         /* 08h */
213     U16                     Reserved4;          /* 0Ch */
214     U16                     IOCStatus;          /* 0Eh */
215     U32                     IOCLogInfo;         /* 10h */
216 } MSG_INBAND_ABORT_REPLY, MPI_POINTER PTR_MSG_INBAND_ABORT_REPLY,
217   MpiInbandAbortReply_t, MPI_POINTER pMpiInbandAbortReply_t;
218
219
220 #endif
221