#define AACQ_FREE 0
#define AACQ_BIO 1
#define AACQ_READY 2
#define AACQ_BUSY 3
#define AACQ_COUNT 4
struct aac_qstat {
u_int32_t q_length;
u_int32_t q_max;
};
union aac_statrequest {
u_int32_t as_item;
struct aac_qstat as_qstat;
};
#define AACIO_STATS _IOWR('T', 101, union aac_statrequest)
#define CTL_CODE(devType, func, meth, acc) (((devType) << 16) | ((acc) << 14) | ((func) << 2) | (meth))
#define METHOD_BUFFERED 0
#define METHOD_IN_DIRECT 1
#define METHOD_OUT_DIRECT 2
#define METHOD_NEITHER 3
#define FILE_ANY_ACCESS 0
#define FILE_READ_ACCESS ( 0x0001 )
#define FILE_WRITE_ACCESS ( 0x0002 )
#define FILE_DEVICE_CONTROLLER 0x00000004
#define FSACTL_LNX_SENDFIB CTL_CODE(FILE_DEVICE_CONTROLLER, 2050, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_SEND_RAW_SRB CTL_CODE(FILE_DEVICE_CONTROLLER, 2067, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_GET_COMM_PERF_DATA CTL_CODE(FILE_DEVICE_CONTROLLER, 2084, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_OPENCLS_COMM_PERF_DATA CTL_CODE(FILE_DEVICE_CONTROLLER, \
2085, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_OPEN_GET_ADAPTER_FIB CTL_CODE(FILE_DEVICE_CONTROLLER, 2100, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_GET_NEXT_ADAPTER_FIB CTL_CODE(FILE_DEVICE_CONTROLLER, 2101, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_CLOSE_GET_ADAPTER_FIB CTL_CODE(FILE_DEVICE_CONTROLLER, \
2102, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_CLOSE_ADAPTER_CONFIG CTL_CODE(FILE_DEVICE_CONTROLLER, 2104, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_OPEN_ADAPTER_CONFIG CTL_CODE(FILE_DEVICE_CONTROLLER, 2105, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_MINIPORT_REV_CHECK CTL_CODE(FILE_DEVICE_CONTROLLER, 2107, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_QUERY_ADAPTER_CONFIG CTL_CODE(FILE_DEVICE_CONTROLLER, 2113, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_GET_PCI_INFO CTL_CODE(FILE_DEVICE_CONTROLLER, 2119, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_FORCE_DELETE_DISK CTL_CODE(FILE_DEVICE_CONTROLLER, 2120, \
METHOD_NEITHER, FILE_ANY_ACCESS)
#define FSACTL_LNX_AIF_THREAD CTL_CODE(FILE_DEVICE_CONTROLLER, 2127, \
METHOD_NEITHER, FILE_ANY_ACCESS)
#define FSACTL_LNX_SEND_LARGE_FIB CTL_CODE(FILE_DEVICE_CONTROLLER, 2138, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_GET_FEATURES CTL_CODE(FILE_DEVICE_CONTROLLER, 2139, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSACTL_LNX_NULL_IO_TEST 0x43
#define FSACTL_LNX_SIM_IO_TEST 0x53
#define FSACTL_LNX_DOWNLOAD 0x83
#define FSACTL_LNX_GET_VAR 0x93
#define FSACTL_LNX_SET_VAR 0xa3
#define FSACTL_LNX_GET_FIBTIMES 0xb3
#define FSACTL_LNX_ZERO_FIBTIMES 0xc3
#define FSACTL_LNX_DELETE_DISK 0x163
#define FSACTL_LNX_QUERY_DISK 0x173
#define FSACTL_LNX_PROBE_CONTAINERS 2131
#define FSACTL_SENDFIB _IO('8', 2)
#define FSACTL_SEND_RAW_SRB _IO('8', 19)
#define FSACTL_GET_COMM_PERF_DATA _IO('8', 36)
#define FSACTL_OPENCLS_COMM_PERF_DATA _IO('8', 37)
#define FSACTL_OPEN_GET_ADAPTER_FIB _IO('8', 52)
#define FSACTL_GET_NEXT_ADAPTER_FIB _IO('8', 53)
#define FSACTL_CLOSE_GET_ADAPTER_FIB _IO('8', 54)
#define FSACTL_CLOSE_ADAPTER_CONFIG _IO('8', 56)
#define FSACTL_OPEN_ADAPTER_CONFIG _IO('8', 57)
#define FSACTL_MINIPORT_REV_CHECK _IO('8', 59)
#define FSACTL_QUERY_ADAPTER_CONFIG _IO('8', 65)
#define FSACTL_GET_PCI_INFO _IO('8', 71)
#define FSACTL_FORCE_DELETE_DISK _IO('8', 72)
#define FSACTL_AIF_THREAD _IO('8', 79)
#define FSACTL_SEND_LARGE_FIB _IO('8', 90)
#define FSACTL_GET_FEATURES _IO('8', 91)
#define FSACTL_NULL_IO_TEST _IO('8', 67)
#define FSACTL_SIM_IO_TEST _IO('8', 83)
#define FSACTL_DOWNLOAD _IO('8', 131)
#define FSACTL_GET_VAR _IO('8', 147)
#define FSACTL_SET_VAR _IO('8', 163)
#define FSACTL_GET_FIBTIMES _IO('8', 179)
#define FSACTL_ZERO_FIBTIMES _IO('8', 195)
#define FSACTL_DELETE_DISK _IO('8', 99)
#define FSACTL_QUERY_DISK _IO('9', 115)
#define FSACTL_PROBE_CONTAINERS _IO('9', 83)
#ifdef _KERNEL
struct aac_rev_check {
RevComponent callingComponent;
struct FsaRevision callingRevision;
};
struct aac_rev_check_resp {
int possiblyCompatible;
struct FsaRevision adapterSWRevision;
};
struct get_adapter_fib_ioctl {
u_int32_t AdapterFibContext;
int Wait;
caddr_t AifFib;
};
#ifdef _KERNEL
struct get_adapter_fib_ioctl32 {
u_int32_t AdapterFibContext;
int Wait;
u_int32_t AifFib;
};
#endif
struct aac_query_disk {
int32_t ContainerNumber;
int32_t Bus;
int32_t Target;
int32_t Lun;
u_int32_t Valid;
u_int32_t Locked;
u_int32_t Deleted;
int32_t Instance;
char diskDeviceName[10];
u_int32_t UnMapped;
};
typedef union {
struct {
u_int32_t largeLBA : 1;
u_int32_t IoctlBuf : 1;
u_int32_t AIFSupport: 1;
u_int32_t JBODSupport:1;
u_int32_t fReserved : 28;
} fBits;
u_int32_t fValue;
} featuresState;
struct aac_features {
featuresState feat;
u_int32_t data[31];
u_int32_t reserved[32];
} __packed;
#endif