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

📄 cciss_cmd.h

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 H
字号:
#ifndef CCISS_CMD_H#define CCISS_CMD_H//###########################################################################//DEFINES//############################################################################define CISS_VERSION "1.00"//general boundary defintions#define SENSEINFOBYTES          32//note that this value may vary between host implementations#define MAXSGENTRIES            31#define MAXREPLYQS              256//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//config space register offsets#define CFG_VENDORID            0x00#define CFG_DEVICEID            0x02#define CFG_I2OBAR              0x10#define CFG_MEM1BAR             0x14//i2o space register offsets#define I2O_IBDB_SET            0x20#define I2O_IBDB_CLEAR          0x70#define I2O_INT_STATUS          0x30#define I2O_INT_MASK            0x34#define I2O_IBPOST_Q            0x40#define I2O_OBPOST_Q            0x44//Configuration Table#define CFGTBL_ChangeReq        0x00000001l#define CFGTBL_AccCmds          0x00000001l#define CFGTBL_Trans_Simple     0x00000002l#define CFGTBL_BusType_Ultra2   0x00000001l#define CFGTBL_BusType_Ultra3   0x00000002l#define CFGTBL_BusType_Fibre1G  0x00000100l#define CFGTBL_BusType_Fibre2G  0x00000200ltypedef struct _vals32{        __u32   lower;        __u32   upper;} vals32;typedef union _u64bit{   vals32	val32;   __u64	val;} u64bit;// Type defs used in the following structs#define BYTE __u8#define WORD __u16#define HWORD __u16#define DWORD __u32#define QWORD vals32 //###########################################################################//STRUCTURES//############################################################################define CISS_MAX_LUN	16	// SCSI-3 Cmmands #pragma pack(1)	#define CISS_INQUIRY 0x12//Date returnedtypedef struct _InquiryData_struct{  BYTE data_byte[36];} InquiryData_struct;#define CISS_REPORT_LOG 0xc2    /* Report Logical LUNs */// Data returnedtypedef struct _ReportLUNdata_struct{  BYTE LUNListLength[4];  DWORD reserved;  BYTE LUN[CISS_MAX_LUN][8];} ReportLunData_struct;#define CCISS_READ_CAPACITY 0x25 /* Read Capacity */ typedef struct _ReadCapdata_struct{  BYTE total_size[4];	// Total size in blocks  BYTE block_size[4];	// Size of blocks in bytes} ReadCapdata_struct;// 12 byte commands not implemented in firmware yet. // #define CCISS_READ 	0xa8	// Read(12)// #define CCISS_WRITE	0xaa	// Write(12) #define CCISS_READ   0x28    // Read(10) #define CCISS_WRITE  0x2a    // Write(10)//Command List Structuretypedef union _SCSI3Addr_struct {   struct {    BYTE Bus:6;    BYTE Mode:2;        // b00    BYTE Dev;  } PeripDev;   struct {    BYTE DevMSB:6;    BYTE Mode:2;        // b01    BYTE DevLSB;  } LogDev;   struct {    BYTE Targ:6;    BYTE Mode:2;        // b10    BYTE Dev:5;    BYTE Bus:3;  } 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 _CommandListHeader_struct {  BYTE              ReplyQueue;  BYTE              SGList;  HWORD             SGTotal;  QWORD             Tag;  LUNAddr_struct    LUN;} CommandListHeader_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 struct _ErrDescriptor_struct {  QWORD  Addr;  DWORD  Len;} ErrDescriptor_struct;typedef struct _SGDescriptor_struct {  QWORD  Addr;  DWORD  Len;  DWORD  Ext;} SGDescriptor_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;/* Command types */#define CMD_RWREQ       0x00#define CMD_IOCTL_PEND  0x01#define CMD_IOCTL_DONE  0x02typedef struct _CommandList_struct {  CommandListHeader_struct Header;  RequestBlock_struct      Request;  ErrDescriptor_struct     ErrDesc;  SGDescriptor_struct      SG[MAXSGENTRIES];	/* information associated with the command */   __u32			   busaddr; /* physical addres of this record */  ErrorInfo_struct * 	   err_info; /* pointer to the allocated mem */   int			   cmd_type;   struct _CommandList_struct *prev;  struct _CommandList_struct *next;  struct buffer_head *	   bh;} CommandList_struct;//Configuration Table Structuretypedef struct _HostWrite_struct {  DWORD TransportRequest;  DWORD Reserved;  DWORD CoalIntDelay;  DWORD CoalIntCount;} HostWrite_struct;typedef struct _CfgTable_struct {  BYTE             Signature[4];  DWORD            SpecValence;  DWORD            TransportSupport;  DWORD            TransportActive;  HostWrite_struct HostWrite;  DWORD            CmdsOutMax;  DWORD            BusTypes;  DWORD            Reserved;   BYTE             ServerName[16];  DWORD            HeartBeat;} CfgTable_struct;#pragma pack()	 #endif // CCISS_CMD_H

⌨️ 快捷键说明

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