⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cciss_ioctl.h

📁 linux得一些常用命令,以及linux环境下的c编程
💻 H
字号:
#ifndef CCISS_IOCTLH#define CCISS_IOCTLH#include <linux/types.h>#include <linux/ioctl.h>#define CCISS_IOC_MAGIC 'B'typedef struct _cciss_pci_info_struct{	unsigned char 	bus;	unsigned char 	dev_fn;	__u32 		board_id;} cciss_pci_info_struct; typedef struct _cciss_coalint_struct{	__u32  delay;	__u32  count;} cciss_coalint_struct;typedef char NodeName_type[16];typedef __u32 Heartbeat_type;#define CISS_PARSCSIU2 	0x0001#define CISS_PARCSCIU3 	0x0002#define CISS_FIBRE1G	0x0100#define CISS_FIBRE2G	0x0200typedef __u32 BusTypes_type;typedef char FirmwareVer_type[4];typedef __u32 DriverVer_type;#ifndef CCISS_CMD_H// This defines are duplicated in cciss_cmd.h in the driver directory //general boundary defintions#define SENSEINFOBYTES          32//note that this value may vary between host implementations//Command Status value#define CMD_SUCCESS             0x0000#define CMD_TARGET_STATUS       0x0001#define CMD_DATA_UNDERRUN       0x0002#define CMD_DATA_OVERRUN        0x0003#define CMD_INVALID             0x0004#define CMD_PROTOCOL_ERR        0x0005#define CMD_HARDWARE_ERR        0x0006#define CMD_CONNECTION_LOST     0x0007#define CMD_ABORTED             0x0008#define CMD_ABORT_FAILED        0x0009#define CMD_UNSOLICITED_ABORT   0x000A#define CMD_TIMEOUT             0x000B#define CMD_UNABORTABLE		0x000C//transfer direction#define XFER_NONE               0x00#define XFER_WRITE              0x01#define XFER_READ               0x02#define XFER_RSVD               0x03//task attribute#define ATTR_UNTAGGED           0x00#define ATTR_SIMPLE             0x04#define ATTR_HEADOFQUEUE        0x05#define ATTR_ORDERED            0x06#define ATTR_ACA                0x07//cdb type#define TYPE_CMD				0x00#define TYPE_MSG				0x01// Type defs used in the following structs#define BYTE __u8#define WORD __u16#define HWORD __u16#define DWORD __u32#define CISS_MAX_LUN	16	#define LEVEL2LUN   1   // index into Target(x) structure, due to byte swapping#define LEVEL3LUN   0#pragma pack(1)//Command List Structuretypedef union _SCSI3Addr_struct {   struct {    BYTE Dev;    BYTE Bus:6;    BYTE Mode:2;        // b00  } PeripDev;   struct {    BYTE DevLSB;    BYTE DevMSB:6;    BYTE Mode:2;        // b01  } LogDev;   struct {    BYTE Dev:5;    BYTE Bus:3;    BYTE Targ:6;    BYTE Mode:2;        // b10  } LogUnit;} SCSI3Addr_struct;typedef struct _PhysDevAddr_struct {  DWORD             TargetId:24;  DWORD             Bus:6;  DWORD             Mode:2;  SCSI3Addr_struct  Target[2]; //2 level target device addr} PhysDevAddr_struct;  typedef struct _LogDevAddr_struct {  DWORD            VolId:30;  DWORD            Mode:2;  BYTE             reserved[4];} LogDevAddr_struct;typedef union _LUNAddr_struct {  BYTE               LunAddrBytes[8];  SCSI3Addr_struct   SCSI3Lun[4];  PhysDevAddr_struct PhysDev;  LogDevAddr_struct  LogDev;} LUNAddr_struct;typedef struct _RequestBlock_struct {  BYTE   CDBLen;  struct {    BYTE Type:3;    BYTE Attribute:3;    BYTE Direction:2;  } Type;  HWORD  Timeout;  BYTE   CDB[16];} RequestBlock_struct;typedef union _MoreErrInfo_struct{  struct {    BYTE  Reserved[3];    BYTE  Type;    DWORD ErrorInfo;  }Common_Info;  struct{    BYTE  Reserved[2];    BYTE  offense_size;//size of offending entry    BYTE  offense_num; //byte # of offense 0-base    DWORD offense_value;  }Invalid_Cmd;}MoreErrInfo_struct;typedef struct _ErrorInfo_struct {  BYTE               ScsiStatus;  BYTE               SenseLen;  HWORD              CommandStatus;  DWORD              ResidualCnt;  MoreErrInfo_struct MoreErrInfo;  BYTE               SenseInfo[SENSEINFOBYTES];} ErrorInfo_struct;#pragma pack()#endif /* CCISS_CMD_H */ typedef struct _IOCTL_Command_struct {  LUNAddr_struct	   LUN_info;  RequestBlock_struct      Request;  ErrorInfo_struct  	   error_info;   WORD			   buf_size;  /* size in bytes of the buf */  BYTE			   *buf;} IOCTL_Command_struct;typedef struct _LogvolInfo_struct{   __u32	LunID;   int		num_opens;  /* number of opens on the logical volume */   int		num_parts;  /* number of partitions configured on logvol */} LogvolInfo_struct;#define CCISS_GETPCIINFO _IOR(CCISS_IOC_MAGIC, 1, cciss_pci_info_struct)#define CCISS_GETINTINFO _IOR(CCISS_IOC_MAGIC, 2, cciss_coalint_struct)#define CCISS_SETINTINFO _IOW(CCISS_IOC_MAGIC, 3, cciss_coalint_struct)#define CCISS_GETNODENAME _IOR(CCISS_IOC_MAGIC, 4, NodeName_type)#define CCISS_SETNODENAME _IOW(CCISS_IOC_MAGIC, 5, NodeName_type)#define CCISS_GETHEARTBEAT _IOR(CCISS_IOC_MAGIC, 6, Heartbeat_type)#define CCISS_GETBUSTYPES  _IOR(CCISS_IOC_MAGIC, 7, BusTypes_type)#define CCISS_GETFIRMVER   _IOR(CCISS_IOC_MAGIC, 8, FirmwareVer_type)#define CCISS_GETDRIVVER   _IOR(CCISS_IOC_MAGIC, 9, DriverVer_type)#define CCISS_REVALIDVOLS  _IO(CCISS_IOC_MAGIC, 10) /* obsolete */#define CCISS_PASSTHRU	   _IOWR(CCISS_IOC_MAGIC, 11, IOCTL_Command_struct)#define CCISS_GETLUNINFO  _IOR(CCISS_IOC_MAGIC, 17, LogvolInfo_struct)#endif  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -