Commit 0abd9e21 authored by Alexandre Julliard's avatar Alexandre Julliard

winaspi: Get rid of header files.

parent 961041e0
/* ASPI definitions used for both WINASPI and WNASPI32
*
* Copyright (C) 2000 David Elliott
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINE_ASPI_H
#define __WINE_ASPI_H
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "pshpack1.h"
#ifdef __cplusplus
extern "C" {
#endif /* #ifdef __cplusplus */
/*********** OLD ****************/
/* Target status codes */
#define STATUS_GOOD 0x00
#define STATUS_CHKCOND 0x02
#define STATUS_BUSY 0x08
#define STATUS_RESCONF 0x18
#define ASPI_POSTING(prb) (prb->SRB_Flags & 0x1)
/* WNASPI32/WINASPI defs */
#define HOST_TO_TARGET(prb) (((prb->SRB_Flags>>3) & 0x3) == 0x2)
#define TARGET_TO_HOST(prb) (((prb->SRB_Flags>>3) & 0x3) == 0x1)
#define NO_DATA_TRANSFERRED(prb) (((prb->SRB_Flags>>3) & 0x3) == 0x3)
#define INQUIRY_VENDOR 8
#define MUSTEK_SCSI_AREA_AND_WINDOWS 0x04
#define MUSTEK_SCSI_READ_SCANNED_DATA 0x08
#define MUSTEK_SCSI_GET_IMAGE_STATUS 0x0f
#define MUSTEK_SCSI_ADF_AND_BACKTRACE 0x10
#define MUSTEK_SCSI_CCD_DISTANCE 0x11
#define MUSTEK_SCSI_START_STOP 0x1b
#define CMD_TEST_UNIT_READY 0x00
#define CMD_REQUEST_SENSE 0x03
#define CMD_INQUIRY 0x12
/* scanner commands - just for debug */
#define CMD_SCAN_GET_DATA_BUFFER_STATUS 0x34
#define CMD_SCAN_GET_WINDOW 0x25
#define CMD_SCAN_OBJECT_POSITION 0x31
#define CMD_SCAN_READ 0x28
#define CMD_SCAN_RELEASE_UNIT 0x17
#define CMD_SCAN_RESERVE_UNIT 0x16
#define CMD_SCAN_SCAN 0x1b
#define CMD_SCAN_SEND 0x2a
#define CMD_SCAN_CHANGE_DEFINITION 0x40
#define INQURIY_CMDLEN 6
#define INQURIY_REPLY_LEN 96
#define INQUIRY_VENDOR 8
#define SENSE_BUFFER(prb) (&prb->CDBByte[prb->SRB_CDBLen])
#ifdef __cplusplus
}
#endif /* #ifdef __cplusplus */
#include "poppack.h"
#endif
...@@ -30,12 +30,105 @@ ...@@ -30,12 +30,105 @@
#include "wnaspi32.h" #include "wnaspi32.h"
#include "winreg.h" #include "winreg.h"
#include "wownt32.h" #include "wownt32.h"
#include "aspi.h"
#include "wine/winaspi.h"
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(aspi); WINE_DEFAULT_DEBUG_CHANNEL(aspi);
#include <pshpack1.h>
typedef struct tagSRB16_HaInquiry {
BYTE SRB_Cmd;
BYTE SRB_Status;
BYTE SRB_HaId;
BYTE SRB_Flags;
WORD SRB_55AASignature;
WORD SRB_ExtBufferSize;
BYTE HA_Count;
BYTE HA_SCSI_ID;
BYTE HA_ManagerId[16];
BYTE HA_Identifier[16];
BYTE HA_Unique[16];
BYTE HA_ExtBuffer[4];
} SRB_HaInquiry16, *PSRB_HaInquiry16, *LPSRB_HaInquiry16;
typedef struct tagSRB16_GDEVBlock {
BYTE SRB_Cmd; /* ASPI command code = SC_GET_DEV_TYPE */
BYTE SRB_Status; /* ASPI command status byte */
BYTE SRB_HaId; /* ASPI host adapter number */
BYTE SRB_Flags; /* ASPI request flags */
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
BYTE SRB_Target; /* Target's SCSI ID */
BYTE SRB_Lun; /* Target's LUN number */
BYTE SRB_DeviceType; /* Target's peripheral device type */
} SRB_GDEVBlock16, *PSRB_GDEVBlock16, *LPSRB_GDEVBlock16;
typedef struct tagSRB16_ExecSCSICmd {
BYTE SRB_Cmd; /* ASPI command code (W) */
BYTE SRB_Status; /* ASPI command status byte (R) */
BYTE SRB_HaId; /* ASPI host adapter number (W) */
BYTE SRB_Flags; /* ASPI request flags (W) */
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 (-) */
BYTE SRB_Target; /* Target's SCSI ID (W) */
BYTE SRB_Lun; /* Target's LUN number (W) */
DWORD SRB_BufLen; /* Data Allocation LengthPG (W/R)*/
BYTE SRB_SenseLen; /* Sense Allocation Length (W) */
SEGPTR SRB_BufPointer; /* Data Buffer Pointer (W) */
DWORD SRB_Rsvd1; /* Reserved, MUST = 0 (-/W)*/
BYTE SRB_CDBLen; /* CDB Length = 6 (W) */
BYTE SRB_HaStat; /* Host Adapter Status (R) */
BYTE SRB_TargStat; /* Target Status (R) */
FARPROC16 SRB_PostProc; /* Post routine (W) */
BYTE SRB_Rsvd2[34]; /* Reserved, MUST = 0 */
BYTE CDBByte[1]; /* SCSI CBD - variable length (W) */
/* variable example for 6 byte cbd
* BYTE CDBByte[6]; * SCSI CDB (W) *
* BYTE SenseArea6[SENSE_LEN]; * Request Sense buffer (R) *
*/
} SRB_ExecSCSICmd16, *PSRB_ExecSCSICmd16, *LPSRB_ExecSCSICmd16;
typedef struct tagSRB16_Abort {
BYTE SRB_Cmd; /* ASPI command code = SC_ABORT_SRB */
BYTE SRB_Status; /* ASPI command status byte */
BYTE SRB_HaId; /* ASPI host adapter number */
BYTE SRB_Flags; /* ASPI request flags */
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
SEGPTR SRB_ToAbort; /* Pointer to SRB to abort */
} SRB_Abort16, *PSRB_Abort16, *LPSRB_Abort16;
typedef struct tagSRB16_BusDeviceReset {
BYTE SRB_Cmd; /* ASPI command code = SC_RESET_DEV */
BYTE SRB_Status; /* ASPI command status byte */
BYTE SRB_HaId; /* ASPI host adapter number */
BYTE SRB_Flags; /* ASPI request flags */
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
BYTE SRB_Target; /* Target's SCSI ID */
BYTE SRB_Lun; /* Target's LUN number */
BYTE SRB_ResetRsvd1[14]; /* Reserved, MUST = 0 */
BYTE SRB_HaStat; /* Host Adapter Status */
BYTE SRB_TargStat; /* Target Status */
FARPROC16 SRB_PostProc; /* Post routine */
BYTE SRB_ResetRsvd2[34]; /* Reserved, MUST = 0 */
} SRB_BusDeviceReset16, *PSRB_BusDeviceReset16, *LPSRB_BusDeviceReset16;
typedef struct tagSRB16_Common {
BYTE SRB_Cmd; /* ASPI command code = SC_ABORT_SRB */
BYTE SRB_Status; /* ASPI command status byte */
BYTE SRB_HaId; /* ASPI host adapter number */
BYTE SRB_Flags; /* ASPI request flags */
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
} SRB_Common16, *PSRB_Common16, *LPSRB_Common16;
typedef union tagSRB16 {
SRB_Common16 common;
SRB_HaInquiry16 inquiry;
SRB_ExecSCSICmd16 cmd;
SRB_Abort16 abort;
SRB_BusDeviceReset16 reset;
SRB_GDEVBlock16 devtype;
} SRB16, *LPSRB16;
#include <poppack.h>
static FARPROC16 ASPIChainFunc = NULL; static FARPROC16 ASPIChainFunc = NULL;
static FARPROC16 exec_postproc16; static FARPROC16 exec_postproc16;
static SEGPTR exec_cmd16; static SEGPTR exec_cmd16;
......
/*
* This file should be source compatible with the Adaptec winaspi.h
* All DOS ASPI structures are the same as WINASPI
*
* Copyright (C) 2000 Alexandre Julliard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef __WINASPI_H__
#define __WINASPI_H__
/* Include base aspi defs */
#include <wnaspi32.h>
#ifdef __cplusplus
extern "C" {
#endif /* #ifdef __cplusplus */
#include <pshpack1.h>
/* SRB HA_INQUIRY */
typedef struct tagSRB16_HaInquiry {
BYTE SRB_Cmd;
BYTE SRB_Status;
BYTE SRB_HaId;
BYTE SRB_Flags;
WORD SRB_55AASignature;
WORD SRB_ExtBufferSize;
BYTE HA_Count;
BYTE HA_SCSI_ID;
BYTE HA_ManagerId[16];
BYTE HA_Identifier[16];
BYTE HA_Unique[16];
BYTE HA_ExtBuffer[4];
} SRB_HaInquiry16, *PSRB_HaInquiry16, *LPSRB_HaInquiry16;
typedef struct tagSRB16_GDEVBlock {
BYTE SRB_Cmd; /* ASPI command code = SC_GET_DEV_TYPE */
BYTE SRB_Status; /* ASPI command status byte */
BYTE SRB_HaId; /* ASPI host adapter number */
BYTE SRB_Flags; /* ASPI request flags */
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
BYTE SRB_Target; /* Target's SCSI ID */
BYTE SRB_Lun; /* Target's LUN number */
BYTE SRB_DeviceType; /* Target's peripheral device type */
} SRB_GDEVBlock16, *PSRB_GDEVBlock16, *LPSRB_GDEVBlock16;
typedef struct tagSRB16_ExecSCSICmd {
BYTE SRB_Cmd; /* ASPI command code (W) */
BYTE SRB_Status; /* ASPI command status byte (R) */
BYTE SRB_HaId; /* ASPI host adapter number (W) */
BYTE SRB_Flags; /* ASPI request flags (W) */
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 (-) */
BYTE SRB_Target; /* Target's SCSI ID (W) */
BYTE SRB_Lun; /* Target's LUN number (W) */
DWORD SRB_BufLen; /* Data Allocation LengthPG (W/R)*/
BYTE SRB_SenseLen; /* Sense Allocation Length (W) */
SEGPTR SRB_BufPointer; /* Data Buffer Pointer (W) */
DWORD SRB_Rsvd1; /* Reserved, MUST = 0 (-/W)*/
BYTE SRB_CDBLen; /* CDB Length = 6 (W) */
BYTE SRB_HaStat; /* Host Adapter Status (R) */
BYTE SRB_TargStat; /* Target Status (R) */
FARPROC16 SRB_PostProc; /* Post routine (W) */
BYTE SRB_Rsvd2[34]; /* Reserved, MUST = 0 */
BYTE CDBByte[1]; /* SCSI CBD - variable length (W) */
/* variable example for 6 byte cbd
* BYTE CDBByte[6]; * SCSI CDB (W) *
* BYTE SenseArea6[SENSE_LEN]; * Request Sense buffer (R) *
*/
} SRB_ExecSCSICmd16, *PSRB_ExecSCSICmd16, *LPSRB_ExecSCSICmd16;
typedef struct tagSRB16_Abort {
BYTE SRB_Cmd; /* ASPI command code = SC_ABORT_SRB */
BYTE SRB_Status; /* ASPI command status byte */
BYTE SRB_HaId; /* ASPI host adapter number */
BYTE SRB_Flags; /* ASPI request flags */
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
SEGPTR SRB_ToAbort; /* Pointer to SRB to abort */
} SRB_Abort16, *PSRB_Abort16, *LPSRB_Abort16;
typedef struct tagSRB16_BusDeviceReset {
BYTE SRB_Cmd; /* ASPI command code = SC_RESET_DEV */
BYTE SRB_Status; /* ASPI command status byte */
BYTE SRB_HaId; /* ASPI host adapter number */
BYTE SRB_Flags; /* ASPI request flags */
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
BYTE SRB_Target; /* Target's SCSI ID */
BYTE SRB_Lun; /* Target's LUN number */
BYTE SRB_ResetRsvd1[14]; /* Reserved, MUST = 0 */
BYTE SRB_HaStat; /* Host Adapter Status */
BYTE SRB_TargStat; /* Target Status */
FARPROC16 SRB_PostProc; /* Post routine */
BYTE SRB_ResetRsvd2[34]; /* Reserved, MUST = 0 */
} SRB_BusDeviceReset16, *PSRB_BusDeviceReset16, *LPSRB_BusDeviceReset16;
typedef struct tagSRB16_Common {
BYTE SRB_Cmd; /* ASPI command code = SC_ABORT_SRB */
BYTE SRB_Status; /* ASPI command status byte */
BYTE SRB_HaId; /* ASPI host adapter number */
BYTE SRB_Flags; /* ASPI request flags */
DWORD SRB_Hdr_Rsvd; /* Reserved, MUST = 0 */
} SRB_Common16, *PSRB_Common16, *LPSRB_Common16;
typedef union tagSRB16 {
SRB_Common16 common;
SRB_HaInquiry16 inquiry;
SRB_ExecSCSICmd16 cmd;
SRB_Abort16 abort;
SRB_BusDeviceReset16 reset;
SRB_GDEVBlock16 devtype;
} SRB16, *LPSRB16;
#include <poppack.h>
extern WORD WINAPI SendASPICommand16(SEGPTR);
extern WORD WINAPI GetASPISupportInfo16(void);
#ifdef __cplusplus
}
#endif /* #ifdef __cplusplus */
#endif /* __WINE_WINASPI_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment