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