Release 991031.
[wine] / include / winaspi.h
1 #ifndef __WINE_WINASPI_H
2 #define __WINE_WINASPI_H
3
4 #include "windef.h"
5
6 #include "pshpack1.h"
7
8 #define ASPI_DOS        1
9 #define ASPI_WIN16      2
10
11 typedef union SRB16 * LPSRB16;
12
13 typedef struct tagSRB_HaInquiry16 {
14   BYTE  SRB_Cmd;
15   BYTE  SRB_Status;
16   BYTE  SRB_HaId;
17   BYTE  SRB_Flags;
18   WORD  SRB_55AASignature;
19   WORD  SRB_ExtBufferSize;
20   BYTE  HA_Count;
21   BYTE  HA_SCSI_ID;
22   BYTE  HA_ManagerId[16];
23   BYTE  HA_Identifier[16];
24   BYTE  HA_Unique[16];
25   BYTE  HA_ExtBuffer[4];
26 } SRB_HaInquiry16 WINE_PACKED;
27
28 typedef struct tagSRB_ExecSCSICmd16 {
29   BYTE        SRB_Cmd;                /* ASPI command code            (W)  */
30   BYTE        SRB_Status;             /* ASPI command status byte     (R)  */
31   BYTE        SRB_HaId;               /* ASPI host adapter number     (W)  */
32   BYTE        SRB_Flags;              /* ASPI request flags           (W)  */
33   DWORD       SRB_Hdr_Rsvd;           /* Reserved, MUST = 0           (-)  */
34   BYTE        SRB_Target;             /* Target's SCSI ID             (W)  */
35   BYTE        SRB_Lun;                /* Target's LUN number          (W)  */
36   DWORD       SRB_BufLen;             /* Data Allocation LengthPG     (W/R)*/
37   BYTE        SRB_SenseLen;           /* Sense Allocation Length      (W)  */
38   SEGPTR      SRB_BufPointer;         /* Data Buffer Pointer          (W)  */
39   DWORD       SRB_Rsvd1;              /* Reserved, MUST = 0           (-/W)*/
40   BYTE        SRB_CDBLen;             /* CDB Length = 6               (W)  */
41   BYTE        SRB_HaStat;             /* Host Adapter Status          (R)  */
42   BYTE        SRB_TargStat;           /* Target Status                (R)  */
43   FARPROC16   SRB_PostProc;           /* Post routine                 (W)  */
44   BYTE        SRB_Rsvd2[34];          /* Reserved, MUST = 0                */
45   BYTE          CDBByte[0];           /* SCSI CBD - variable length   (W)  */
46   /* variable example for 6 byte cbd
47    * BYTE        CDBByte[6];             * SCSI CDB                    (W) *
48    * BYTE        SenseArea6[SENSE_LEN];  * Request Sense buffer         (R) *
49    */
50 } SRB_ExecSCSICmd16 WINE_PACKED;
51
52 typedef struct tagSRB_Abort16 {
53   BYTE        SRB_Cmd;            /* ASPI command code = SC_ABORT_SRB */
54   BYTE        SRB_Status;         /* ASPI command status byte */
55   BYTE        SRB_HaId;           /* ASPI host adapter number */
56   BYTE        SRB_Flags;          /* ASPI request flags */
57   DWORD       SRB_Hdr_Rsvd;       /* Reserved, MUST = 0 */
58   LPSRB16     SRB_ToAbort;        /* Pointer to SRB to abort */
59 } SRB_Abort16 WINE_PACKED;
60
61 typedef struct tagSRB_BusDeviceReset16 {
62   BYTE        SRB_Cmd;            /* ASPI command code = SC_RESET_DEV */
63   BYTE        SRB_Status;         /* ASPI command status byte */
64   BYTE        SRB_HaId;           /* ASPI host adapter number */
65   BYTE        SRB_Flags;          /* ASPI request flags */
66   DWORD       SRB_Hdr_Rsvd;       /* Reserved, MUST = 0 */
67   BYTE        SRB_Target;         /* Target's SCSI ID */
68   BYTE        SRB_Lun;            /* Target's LUN number */
69   BYTE        SRB_ResetRsvd1[14]; /* Reserved, MUST = 0 */
70   BYTE        SRB_HaStat;         /* Host Adapter Status */
71   BYTE        SRB_TargStat;       /* Target Status */
72   SEGPTR      SRB_PostProc;       /* Post routine */
73   BYTE        SRB_ResetRsvd2[34]; /* Reserved, MUST = 0 */
74 } SRB_BusDeviceReset16 WINE_PACKED;
75
76 typedef struct tagSRB_GDEVBlock16 {
77   BYTE        SRB_Cmd;            /* ASPI command code = SC_GET_DEV_TYPE */
78   BYTE        SRB_Status;         /* ASPI command status byte */
79   BYTE        SRB_HaId;           /* ASPI host adapter number */
80   BYTE        SRB_Flags;          /* ASPI request flags */
81   DWORD       SRB_Hdr_Rsvd;       /* Reserved, MUST = 0 */
82   BYTE        SRB_Target;         /* Target's SCSI ID */
83   BYTE        SRB_Lun;            /* Target's LUN number */
84   BYTE        SRB_DeviceType;     /* Target's peripheral device type */
85 } SRB_GDEVBlock16 WINE_PACKED;
86
87 typedef struct tagSRB_Common16 {
88   BYTE  SRB_Cmd;
89 } SRB_Common16;
90
91 union SRB16 {
92   SRB_Common16          common;
93   SRB_HaInquiry16       inquiry;
94   SRB_ExecSCSICmd16     cmd;
95   SRB_Abort16           abort;
96   SRB_BusDeviceReset16  reset;
97   SRB_GDEVBlock16       devtype;
98 };
99
100 typedef union SRB16 SRB16;
101
102 #include "poppack.h"
103
104 #endif /* __WINE_WINASPI_H */