mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 00:01:35 +00:00 
			
		
		
		
	 429c42c9d2
			
		
	
	
		429c42c9d2
		
	
	
	
	
		
			
			There are several duplicate definitions in cciss_cmd.h and cciss_ioctl.h. Consolidate these into the new cciss_defs.h file. This patch doesn't change the definitions exposed under include/linux, so userspace apps shouldn't be affected. Acked-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Signed-off-by: dann frazier <dannf@hp.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
		
			
				
	
	
		
			131 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef CCISS_DEFS_H
 | |
| #define CCISS_DEFS_H
 | |
| 
 | |
| #include <linux/types.h>
 | |
| 
 | |
| /* general boundary definitions */
 | |
| #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	1024
 | |
| 
 | |
| #define LEVEL2LUN   1 /* index into Target(x) structure, due to byte swapping */
 | |
| #define LEVEL3LUN   0
 | |
| 
 | |
| #pragma pack(1)
 | |
| 
 | |
| /* Command List Structure */
 | |
| typedef 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_DEFS_H */
 |