📄 scsi-defs.h
字号:
PackedBit pvoltag : 1;#else PackedBit pvoltag : 1; PackedBit avoltag : 1; PackedBit bitres : 6;#endif unsigned char length[2]; /* Byte 2-3 = Element Descriptor Length */ unsigned char byte4; /* Byte 4 */ unsigned char count[3]; /* Byte 5-7 = Byte Count of Descriptor Available */} ElementStatusPage_T;/* ======================================================= *//* ElementStatusData_T *//* ======================================================= */typedef struct { unsigned char first[2]; /* Byte 1-2 = First Element Adress Reported */ unsigned char number[2]; /* Byte 3-4 = Number of Elements Available */ unsigned char byte5; /* Reserved */ unsigned char count[3]; /* Byte 6-8 = Byte Count of Report Available */} ElementStatusData_T;/* ======================================================= *//* MediumTransportElementDescriptor_T *//* ======================================================= */typedef struct { unsigned char address[2]; /* Byte 1-2 = Element Address */#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit full : 1; PackedBit rsvd : 1; PackedBit except : 1; PackedBit res : 5;#else PackedBit res : 5; PackedBit except : 1; PackedBit rsvd : 1; PackedBit full : 1;#endif unsigned char byte4; /* Byte 4 */ unsigned char asc; /* Byte 5 ASC */ unsigned char ascq; /* Byte 6 ASCQ */ unsigned char byte79[3]; /* Byte 7-9 */#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit byte10res : 6; PackedBit invert : 1; PackedBit svalid : 1;#else PackedBit svalid : 1; PackedBit invert : 1; PackedBit byte10res : 6;#endif unsigned char source[2]; unsigned char pvoltag[36]; unsigned char res4[4];} MediumTransportElementDescriptor_T;/* ======================================================= *//* ImportExportElementDescriptor_T *//* ======================================================= */typedef struct { unsigned char address[2]; /* Byte 1 = Element Address */#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit full : 1; PackedBit impexp : 1; PackedBit except : 1; PackedBit access : 1; PackedBit exenab : 1; PackedBit inenab : 1; PackedBit res : 2;#else PackedBit res : 2; PackedBit inenab : 1; PackedBit exenab : 1; PackedBit access : 1; PackedBit except : 1; PackedBit rsvd : 1; PackedBit full : 1;#endif unsigned char byte4; unsigned char asc; unsigned char ascq; unsigned char byte79[3];#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit byte10res : 6; PackedBit invert : 1; PackedBit svalid : 1;#else PackedBit svalid : 1; PackedBit invert : 1; PackedBit byte10res : 6;#endif unsigned char source[2]; unsigned char pvoltag[36]; unsigned char res4[4]; unsigned char mediadomain[1]; unsigned char mediatype[1]; unsigned char res5[2];} ImportExportElementDescriptor_T;/* ======================================================= *//* StorageElementDescriptor_T *//* ======================================================= */typedef struct { unsigned char address[2];#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit full : 1; PackedBit rsvd : 1; PackedBit except : 1; PackedBit access : 1; PackedBit res : 4;#else PackedBit res : 4; PackedBit access : 1; PackedBit except : 1; PackedBit rsvd : 1; PackedBit full : 1;#endif unsigned char res1; unsigned char asc; unsigned char ascq; unsigned char res2[3];#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit res3 : 6; PackedBit invert : 1; PackedBit svalid : 1;#else PackedBit svalid : 1; PackedBit invert : 1; PackedBit res3 : 6;#endif unsigned char source[2]; unsigned char pvoltag[36]; unsigned char res4[4]; unsigned char mediadomain[1]; unsigned char mediatype[1]; unsigned char res5[2];} StorageElementDescriptor_T;/* ======================================================= *//* DataTransferElementDescriptor_T *//* ======================================================= */typedef struct { unsigned char address[2];#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit full : 1; PackedBit rsvd : 1; PackedBit except : 1; PackedBit access : 1; PackedBit res : 4;#else PackedBit res : 4; PackedBit access : 1; PackedBit except : 1; PackedBit rsvd : 1; PackedBit full : 1;#endif unsigned char res1; unsigned char asc; unsigned char ascq;#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit lun : 3; PackedBit rsvd1 : 1; PackedBit luvalid : 1; PackedBit idvalid : 1; PackedBit rsvd2 : 1; PackedBit notbus : 1;#else PackedBit notbus : 1; PackedBit rsvd2 : 1; PackedBit idvalid : 1; PackedBit luvalid : 1; PackedBit rsvd1 : 1; PackedBit lun : 3;#endif unsigned char scsi; unsigned char res2;#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit res3 : 6; PackedBit invert : 1; PackedBit svalid : 1;#else PackedBit svalid : 1; PackedBit invert : 1; PackedBit res3 : 6;#endif unsigned char source[2]; unsigned char pvoltag[36]; unsigned char res4[42];} DataTransferElementDescriptor_T;/* ======================================================= *//* SCSIInquiry_T *//* ======================================================= */typedef struct{#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit type : 5; PackedBit qualifier : 3; PackedBit type_modifier : 7; PackedBit removable : 1; PackedBit ansi_version : 3; PackedBit ecma_version : 3; PackedBit iso_version : 2; PackedBit data_format : 4; PackedBit res3_54 : 2; PackedBit termiop : 1; PackedBit aenc : 1;#else PackedBit qualifier : 3; PackedBit type : 5; PackedBit removable : 1; PackedBit type_modifier : 7; PackedBit iso_version : 2; PackedBit ecma_version : 3; PackedBit ansi_version : 3; PackedBit aenc : 1; PackedBit termiop : 1; PackedBit res3_54 : 2; PackedBit data_format : 4;#endif unsigned char add_len; unsigned char res2; unsigned char res3; #ifdef LITTLE_ENDIAN_BITFIELDS PackedBit softreset : 1; PackedBit cmdque : 1; PackedBit res7_2 : 1; PackedBit linked : 1; PackedBit sync : 1; PackedBit wbus16 : 1; PackedBit wbus32 : 1; PackedBit reladr : 1;#else PackedBit reladr : 1; PackedBit wbus32 : 1; PackedBit wbus16 : 1; PackedBit sync : 1; PackedBit linked : 1; PackedBit res7_2 : 1; PackedBit cmdque : 1; PackedBit softreset : 1;#endif char vendor_info[8]; char prod_ident[16]; char prod_version[4]; char vendor_specific[20];} SCSIInquiry_T;/* ======================================================= *//* ModeSenseHeader_T *//* ======================================================= */typedef struct{ unsigned char DataLength; unsigned char MediumType;#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit Speed:4; PackedBit BufferedMode:3; PackedBit WP:1;#else PackedBit WP:1; PackedBit BufferedMode:3; PackedBit Speed:4;#endif unsigned char BlockDescLength;} ModeSenseHeader_T;/* ======================================================= *//* ModeBlockDescriptor_T *//* ======================================================= */typedef struct { unsigned char DensityCode; unsigned char NumberOfBlocks[3]; unsigned char Reserved; unsigned char BlockLength[3];} ModeBlockDescriptor_T;/* ======================================================= *//* LogSenseHeader_T *//* ======================================================= */typedef struct {#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit PageCode:6; PackedBit Reserved:2;#else PackedBit Reserved:2; PackedBit PageCode:6;#endif unsigned char Reserved1; unsigned char PageLength[2];} LogSenseHeader_T ;/* ======================================================= *//* LogParameters_T *//* ======================================================= */typedef struct{ unsigned char ParameterCode[2];#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit LP:1; PackedBit RSCD:1; PackedBit TMC:1; PackedBit ETC:1; PackedBit TSD:1; PackedBit DS:1; PackedBit DU:1;#else PackedBit DU:1; PackedBit DS:1; PackedBit TSD:1; PackedBit ETC:1; PackedBit TMC:1; PackedBit RSCD:1; PackedBit LP:1;#endif char ParameterLength;} LogParameter_T;/* * Pages returned by the MODE_SENSE command */typedef struct { unsigned char SenseDataLength; char res[3];} ParameterListHeader_T;/* ======================================================= *//* ReadWriteErrorRecoveryPage_T *//* ======================================================= */typedef struct {#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit PageCode : 6; PackedBit res : 1; PackedBit PS : 1;#else PackedBit PS : 1; PackedBit res : 1; PackedBit PageCode : 6;#endif unsigned char ParameterListLength;#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit dcr :1; /* Disable ECC Correction */ PackedBit dte :1; /* Disable Transfer on Error */ PackedBit per :1; /* Enable Post Error reporting */ PackedBit eer :1; /* Enable early recovery */ PackedBit res1 :1; PackedBit tb :1; /* Transfer block (when not fully recovered) */ PackedBit res2 :1; PackedBit res3 :1;#else PackedBit res3 :1; PackedBit res2 :1; PackedBit tb :1; PackedBit res1 :1; PackedBit eer :1; PackedBit per :1; PackedBit dte :1; PackedBit dcr :1;#endif unsigned char ReadRetryCount; unsigned char res4[4]; unsigned char WriteRetryCount; unsigned char res5[3];} ReadWriteErrorRecoveryPage_T; /* ======================================================= *//* EDisconnectReconnectPage_T *//* ======================================================= */typedef struct {#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit PageCode : 6; PackedBit RSVD : 1; PackedBit PS : 1;#else PackedBit PS : 1; PackedBit RSVD : 1; PackedBit PageCode : 6;#endif unsigned char BufferFullRatio; unsigned char BufferEmptyRatio; unsigned char BusInactivityLimit[2]; unsigned char DisconnectTimeLimit[2]; unsigned char ConnectTimeLimit[2]; unsigned char MaximumBurstSize[2];#ifdef LITTLE_ENDIAN_BITFIELDS PackedBit DTDC :2; PackedBit res :6;#else PackedBit res :6;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -