📄 scsi.h
字号:
dtdc:2; /* Data transfer disconnect cont */ unsigned char res[3]; /* Reserved */ } DISCONNECT_RECONNECT_STRUCT;#define DTDC_OFF 0x00 /* dtdc not used used other */ /* fields in this page as control */#define DTDC_ON_DATA 0x01 /* disconnect only after all */ /* data is sent */#define DTDC_ON_CMD 0x03 /* disconnect only command */ /* complete *//*---------------------------------------------------------------------*//* Format Device page *//*---------------------------------------------------------------------*/#define FORMAT_DEVICE_PC 0x03#define FORMAT_DEVICE_DLEN 24typedef struct { unsigned char ps:1, /* Page saveable mode sense only */ :1, /* Reserved */ page_code:6; /* Page code (0x03) */ unsigned char page_length; /* Additional page length */ unsigned short tracks_per_zone; unsigned short alternate_sec_per_zone; unsigned short alternate_tracks_per_zone; unsigned short alternate_tracks_per_lun; unsigned short sec_per_track; unsigned short bytes_per_sec; unsigned short interleave; unsigned short track_skew; unsigned short cylinder_skew; unsigned char ssec:1, /* soft sector format */ hsec:1, /* hard sector format */ rmb:1, /* removable media */ surf:1, /* serface block allocation */ :4; /* Reserved */ unsigned short res; } FORMAT_DEVICE_STRUCT;/*---------------------------------------------------------------------*//* Rigid disk drive geometry page *//*---------------------------------------------------------------------*/#define RDD_GEOMETRY_PC 0x04#define RDD_GEOMETRY_DLEN 24typedef struct { unsigned char ps:1, /* Page saveable mode sense only */ :1, /* Reserved */ page_code:6; /* Page code (0x04) */ unsigned char page_length; /* Additional page length */ unsigned short cylinders; unsigned char heads; unsigned short scwp; unsigned short scrwc; unsigned short drive_step_rate; unsigned short landing_zone_cyl; unsigned char :6, rpl:2; unsigned char rotational_offset; unsigned char :8; unsigned char medium_rotation_rate; unsigned char :8; unsigned char :8; } RDD_GEOMETRY_STRUCT;/*---------------------------------------------------------------------*//* Flexible disk page *//*---------------------------------------------------------------------*/#define FLEX_DISK_PC 0x05#define FLEX_DISK_DLEN 32typedef struct { unsigned char ps:1, /* Page saveable mode sense only */ :1, /* Reserved */ page_code:6; /* Page code (0x05) */ unsigned char page_length; /* Additional page length */ unsigned short transfer_rate; unsigned char heads; unsigned char sec_per_track; unsigned short bytes_per_sec; unsigned short cylinders; unsigned short scwp; unsigned short scrwc; unsigned short drive_step_rate; unsigned char drive_step_pulse_width; unsigned short head_settle_delay; unsigned char motor_on_delay; unsigned char motor_off_delay; unsigned char trdy:1, ssn:1, mo:1, :5; unsigned char :4, spc:4; unsigned char write_compensation; unsigned char head_load_delay; unsigned char head_unload_delay; unsigned char pin34:4, pin2:4; unsigned char pin4:4, pin1:4; unsigned short min_rotatinal_rate; unsigned short res; } FLEX_DISK_STRUCT;#define TR250 0x00FA /* transfer rates */#define TR300 0x012C#define TR500 0x01F4#define TR1MEG 0x03E8#define TR2MEG 0x07D0#define TR5MEG 0x1388/*---------------------------------------------------------------------*//* Verify error recovery page *//*---------------------------------------------------------------------*/#define VERIFY_RECOVERY_PC 0x07#define VERIFY_RECOVERY_DLEN 12typedef struct { unsigned char ps:1, /* Page saveable mode sense only */ :1, /* Reserved */ page_code:6; /* Page code (0x07) */ unsigned char page_length; /* Additional page length */ unsigned char :4, err:1, per:1, dte:1, dcr:1; unsigned char retry_count; unsigned char correction_span; unsigned char res[5]; unsigned short recovery_time; } VERIFY_RECOVERY_STRUCT;/*---------------------------------------------------------------------*//* Control Mode Page (SCSI 2) *//*---------------------------------------------------------------------*/#define CONTROL_MODE_PC 0x0A#define CONTROL_MODE_DLEN 8typedef struct { unsigned char ps:1, /* Page saveable mode sense only */ :1, /* Reserved */ page_code:6; /* Page code (0x0A) */ unsigned char page_length; /* Additional page length */ unsigned char :6, /* Reserved */ relc:2; /* report log exception condition */ unsigned char qam:4, /* queue algorirhm modifier */ :2, /* Reserved */ qem:1, /* queue error management */ disable_que:1; unsigned char eeca:1, /* enable extended contingent */ /* allegiance */ :4, /* Reserved */ raenp:1, /* asynchronous event */ /* notification */ uaaenp:1, /* unit attention permission */ eaenp:1; /* report defered error condition*/ unsigned char :8; /* Reserved */ unsigned short ready_holdoff; } CONTROL_MODE_STRUCT;/***********************************************************************//* Request Sense command -- COMMON TO ALL DEVICES *//***********************************************************************/#define REQUEST_SENSE 0x03#define REQUEST_SENSE_DLEN 0x06typedef struct { unsigned char code; /* Command number */ unsigned char lun:3, /* Logical unit number */ :5; /* Reserved */ unsigned char res[2]; /* Reserved */ unsigned char dlen; /* Data length to return */ unsigned char vu:2, /* Vendor unique. */ :4, /* Reserved */ flag:1, /* Flagged command. */ link:1; /* Linked command. */ } REQUEST_SENSE_STRUCT;#if BSP_LITTLE_ENDIANtypedef struct { unsigned char code:4, sclass:3, valid:1; unsigned char segment; unsigned char sensekey:4, :1, ili:1, eom:1, fmark:1; unsigned char info[4]; unsigned char more; unsigned char res1[4]; unsigned char sensecode; /* additional sense code */ unsigned char sensequalifer; /* additional semse code qualifier*/ unsigned char fru; unsigned char bptr:3, bpv:1, :2, cd:1, fpv:1;}REQUEST_SENSE_RET_STRUCT;#elsetypedef struct { unsigned char valid:1, sclass:3, code:4; unsigned char segment; unsigned char fmark:1, eom:1, ili:1, :1, sensekey:4; unsigned char info[4]; unsigned char more; unsigned char res1[4]; unsigned char sensecode; /* additional sense code */ unsigned char sensequalifer; /* additional semse code qualifier*/ unsigned char fru; unsigned char fpv:1, cd:1, :2, bpv:1, bptr:3;}REQUEST_SENSE_RET_STRUCT;#endif/***********************************************************************//* Write Filemarks *//***********************************************************************/#define WRITE_FILEMARKS 0x10#define WRITE_FILEMARKS_DLEN 6 #ifdef MRItypedef packed struct#endif#ifdef GHS#pragma pack(1)typedef struct#endif#if _SDS#pragma maxalign(1)typedef struct#endif { unsigned char code; unsigned long lun :3, :3, wsmk :1, immed :1, marks :24; unsigned char vu :2, :4, flag :1, link :1; } WRITE_FILEMARKS_STRUCT;#ifdef GHS#pragma pack()#endif#if _SDS#pragma maxalign()#endif/***********************************************************************//* Rewind *//***********************************************************************/#define REWIND 0x01
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -