📄 scsivar.h
字号:
u_char pad[16]; /* Pad */ }wfm; /* * SPACE Command */ struct sz_space_cm { u_char code:2; /* Fixed */ u_char :3; /* Reserved */ u_char lun:3; /* Logical Unit Number */ u_char count2; /* Count (MSB) */ u_char count1; /* Count */ u_char count0; /* Count (LSB) */ u_char link:1; /* Link */ u_char flag:1; /* Flag */ u_char :4; /* Reserved */ u_char mbz:2; /* Must be Zero */ u_char pad[16]; /* Pad */ }space; /* * VERIFY Command */ struct sz_vfy_cm { u_char fixed:1; /* Fixed */ u_char bytcmp:1; /* Byte Compare */ u_char :3; /* Reserved */ u_char lun:3; /* Logical Unit Number */ u_char verflen2; /* Verification Length (MSB) */ u_char verflen1; /* Verification Length */ u_char verflen0; /* Verification Length (LSB) */ u_char link:1; /* Link */ u_char flag:1; /* Flag */ u_char :4; /* Reserved */ u_char mbz:2; /* Must be Zero */ u_char pad[16]; /* Pad */ }vfy; /* * ERASE Command */ struct sz_era_cm { u_char longbit:1; /* Long */ u_char :4; /* Reserved */ u_char lun:3; /* Logical Unit Number */ u_char :8; /* Reserved */ u_char :8; /* Reserved */ u_char :8; /* Reserved */ u_char link:1; /* Link */ u_char flag:1; /* Flag */ u_char :4; /* Reserved */ u_char mbz:2; /* Must be Zero */ u_char pad[16]; /* Pad */ }erase; /* * LOAD/UNLOAD Command */ struct sz_ld_cm { u_char immed:1; /* Immediate */ u_char :4; /* Reserved */ u_char lun:3; /* Logical Unit Number */ u_char :8; /* Reserved */ u_char :8; /* Reserved */ u_char load:1; /* Load */ u_char reten:1; /* Retention */ u_char :6; /* Reserved */ u_char link:1; /* Link */ u_char flag:1; /* Flag */ u_char :4; /* Reserved */ u_char mbz:2; /* Must be Zero */ u_char pad[16]; /* Pad */ }ld; /* * SEND DIAGNOSTIC Command */ struct sz_snd_diag_cm { u_char control : 5; /* Diagnostic control bits. [1] */ u_char lun : 3; /* Logical Unit Number. */ u_char : 8; /* Reserved. [2] */ u_char param_len1; /* Allocation length (MSB). [3] */ u_char param_len0; /* Allocation length (LSB). [4] */ u_char link : 1; /* Link. [5] */ u_char flag : 1; /* Flag. */ u_char : 4; /* Reserved. */ u_char mbz2 : 2; /* Vendor Unique. */ u_char pad[16]; /* Pad. */ } diag; /* * RECEIVE DIAGNOSTIC RESULT Command */ struct sz_recdiag_cm { u_char : 5; /* Reserved. [1] */ u_char lun : 3; /* Logical Unit Number. */ u_char : 8; /* Reserved. [2] */ u_char alloc_len1; /* Allocation length (MSB). [3] */ u_char alloc_len0; /* Allocation length (LSB). [4] */ u_char link : 1; /* Link. [5] */ u_char flag : 1; /* Flag. */ u_char : 4; /* Reserved. */ u_char mbz2 : 2; /* Vendor Unique. */ u_char pad[16]; /* Pad. */ } recdiag; /* * MODE SELECT Command */ struct sz_modsel_cm { u_char sp:1; /* Save Parameters (DISK only) */ u_char mbz0:3; /* Reserved (all) */ u_char pf:1; /* Page Format */ u_char lun:3; /* Logical Unit Number (all) */ u_char :8; /* Reserved */ u_char :8; /* Reserved */ u_char pll; /* Parameter List Length */ u_char link:1; /* Link */ u_char flag:1; /* Flag */ u_char :4; /* Reserved */ u_char mbz:2; /* Must be Zero */ /* Parameter List Header */ u_char :8; /* Reserved */ u_char :8; /* Reserved */ u_char speed:4; /* was mbz now speed */ u_char bufmode:3; /* Buffered Mode */ u_char :1; /* Reserved */ u_char rdeclen; /* Record Descriptor Length */ /* Parameter List Block Descriptor */ u_char density; /* Was nbz2 now its the density code */ u_char numofrec2; /* Number of Records (MSB) */ u_char numofrec1; /* Number of Records */ u_char numofrec0; /* Number of Records (LSB) */ u_char :8; /* Reserved */ u_char reclen2; /* Record Length (MSB) */ u_char reclen1; /* Record Length */ u_char reclen0; /* Record Length (LSB) */ u_char vulen; /* Vendor Unique Length */ u_char nof:3; /* Enable Fillers */ u_char mbz3:3; /* Must be Zero */ u_char notimo:1; /* Disable Reselect timeouts */ u_char vu7:1; /* Direct Track Access */ u_char pad[2]; /* Pad */ }modsel; /* * Track SELECT Command */ struct sz_trksel_cm { u_char :5; /* Reserved */ u_char lun:3; /* Logical Unit Number */ u_char :8; /* Reserved */ u_char :8; /* Reserved */ u_char trkval; /* Track Value */ u_char link:1; /* Link */ u_char flag:1; /* Flag */ u_char :4; /* Reserved */ u_char mbz:2; /* Must be Zero */ u_char pad[16]; /* Pad */ }trksel; /* * RESERVE UNIT Command * RELEASE UNIT Command */ struct sz_runit_cm { u_char :1; /* Reserved */ u_char thrdpdev:3; /* Third Party Device */ u_char thrdp:1; /* Third Party */ u_char lun:3; /* Logical Unit Number */ u_char :8; /* Reserved */ u_char :8; /* Reserved */ u_char :8; /* Reserved */ u_char link:1; /* Link */ u_char flag:1; /* Flag */ u_char :4; /* Reserved */ u_char mbz:2; /* Must be Zero */ u_char pad[16]; /* Pad */ }runit; /* * PREVENT/ALLOW MEDIUM REMOVAL Command */ struct sz_medremoval_cm { u_char : 5; /* Reserved. [1] */ u_char lun : 3; /* Logical Unit Number. */ u_char : 8; /* Reserved. [2] */ u_char : 8; /* Reserved. [3] */ u_char prevent : 1; /* Prevent = 1, Allow = 0. [4] */ u_char : 7; /* Reserved. */ u_char link : 1; /* Link. [5] */ u_char flag : 1; /* Flag. */ u_char : 4; /* Reserved. */ u_char mbz : 2; /* Must be Zero. */ u_char pad[16]; /* Pad. */ } mr; /* * START/STOP UNIT Command */ struct sz_ssu_cm { u_char immed : 1; /* Immediate 1 = True [1] */ u_char : 4; /* Reserved. */ u_char lun : 3; /* Logical Unit Number. */ u_char : 8; /* Reserved. [2] */ u_char : 8; /* Reserved. [3] */ u_char start : 1; /* Start = 1, Stop = 0. [4] */ u_char loej : 1; /* Load/Eject = 1, 0 = No Affect. */ u_char : 6; /* Reserved. */ u_char link : 1; /* Link. [5] */ u_char flag : 1; /* Flag. */ u_char : 4; /* Reserved. */ u_char mbz : 2; /* Must be Zero. */ u_char pad[16]; /* Pad. */ } ssu; /* * DISK specific: * READ CAPACITY Command * Read/Write Long */ struct sz_rdcap_cm { u_char reladr:1; /* RelAdr (TODO1: spec don't say!) */ u_char :4; /* Reserved */ u_char lun:3; /* Logical Unit Number */ u_char lbaddr3; /* Logical Block Address (MSB) */ u_char lbaddr2; /* Logical Block Address */ u_char lbaddr1; /* Logical Block Address */ u_char lbaddr0; /* Logical Block Address (LSB) */ u_char :8; /* Reserved */ u_char :8; /* Reserved */ u_char pmi:1; /* Partial Media Indicator */ u_char :5; /* Reserved */ u_char mbz1:2; /* Vendor Unique */ u_char link:1; /* Link */ u_char flag:1; /* Flag */ u_char :4; /* Reserved */ u_char mbz2:2; /* Vendor Unique */ u_char pad[12]; /* Pad */ }rdcap; struct sz_rwl_cm { u_char reladr:1; /* RelAdr (NOTE: spec dose not say!) */ u_char :4; /* Reserved */ u_char lun:3; /* Logical Unit Number */ u_char lbaddr3:7; /* Logical Block Address (MSB) */ u_char phad:1; /* Physical Address Flag */ u_char lbaddr2; /* Logical Block Address */ u_char lbaddr1; /* Logical Block Address */ u_char lbaddr0; /* Logical Block Address (LSB) */ u_char :8; /* Reserved */ u_char :8; /* Reserved */ u_char dspec:8; /* Drive specific byte 55:0 22/23:1 */ u_char link:1; /* Link */ u_char flag:1; /* Flag */ u_char :4; /* Reserved */ u_char mbz2:2; /* Vendor Unique */ u_char pad[12]; /* Pad */ }rwl; /* * CD-ROM: Play Audio MSF Command. */ struct sz_play_audio_msf_cm { u_char : 5; /* Reserved. [1] */ u_char lun : 3; /* Logical Unit Number. */ u_char : 8; /* Reserved. [2] */ u_char starting_M_unit; /* Starting M-unit. [3] */ u_char starting_S_unit; /* Starting S-unit. [4] */ u_char starting_F_unit; /* Starting F-unit. [5] */ u_char ending_M_unit; /* Ending M-unit. [6] */ u_char ending_S_unit; /* Ending S-unit. [7] */ u_char ending_F_unit; /* Ending F-unit. [8] */ u_char link : 1; /* Link. [9] */ u_char flag : 1; /* Flag. */ u_char : 4; /* Reserved. */ u_char mbz2 : 2; /* Vendor Unique. */ u_char pad[12]; /* Pad. */ } msf; /* * CD-ROM: Play Audio Track/Index Command. */ struct sz_play_audio_ti_cm { u_char : 5; /* Reserved. [1] */ u_char lun : 3; /* Logical Unit Number. */ u_char : 8; /* Reserved. [2] */ u_char : 8; /* Reserved. [3] */ u_char starting_track; /* Starting Track. [4] */ u_char starting_index; /* Starting Index. [5] */ u_char : 8; /* Reserved. [6] */ u_char ending_track; /* Ending Track. [7] */ u_char ending_index; /* Ending Index [8] */ u_char link : 1; /* Link. [9] */ u_char flag : 1; /* Flag. */ u_char : 4; /* Reserved. */ u_char mbz2 : 2; /* Vendor Unique. */ u_char pad[12]; /* Pad. */ } ti; /* * CD-ROM: Play Audio Track Relative Command. */ struct sz_play_audio_tr_cm { u_char : 5; /* Reserved. [1] */ u_char lun : 3; /* Logical Unit Number. */ u_char lbaddr3; /* Logical Block Address [2] */ u_char lbaddr2; /* Logical Block Address. [3] */ u_char lbaddr1; /* Logical Block Address. [4] */ u_char lbaddr0; /* Logical Block Address. [5] */ u_char starting_track; /* Starting Track. [6] */ u_char xfer_len1; /* Transfer Length [7] */ u_char xfer_len0; /* Transfer Length [8] */ u_char link : 1; /* Link. [9] */ u_char flag : 1; /* Flag. */ u_char : 4; /* Reserved. */ u_char mbz2 : 2; /* Vendor Unique. */ u_char pad[12]; /* Pad. */ } tr; /* * CD-ROM: Pause/Resume Command. */ struct sz_pause_resume_cm { u_char : 5; /* Reserved. [1] */ u_char lun : 3; /* Logical Unit Number. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -