📄 scsireg.h
字号:
struct ccs_mode_page_38 { /* CCS Caching Parameters */ MP_P_CODE; /* parsave & pagecode */ u_char p_len; /* 0x0E = 14 Bytes */ Ucbit cache_table_size: 4; /* Byte 3 */ Ucbit cache_en : 1; Ucbit res2 : 1; Ucbit wr_index_en : 1; Ucbit res : 1; /* Byte 3 */ u_char threshold; /* Byte 4 Prefetch threshold */ u_char max_prefetch; /* Byte 5 Max. prefetch */ u_char max_multiplier; /* Byte 6 Max. prefetch multiplier */ u_char min_prefetch; /* Byte 7 Min. prefetch */ u_char min_multiplier; /* Byte 8 Min. prefetch multiplier */ u_char res3[8]; /* Byte 9 */};#else /* Motorola byteorder */struct ccs_mode_page_38 { /* CCS Caching Parameters */ MP_P_CODE; /* parsave & pagecode */ u_char p_len; /* 0x0E = 14 Bytes */ Ucbit res : 1; /* Byte 3 */ Ucbit wr_index_en : 1; Ucbit res2 : 1; Ucbit cache_en : 1; Ucbit cache_table_size: 4; /* Byte 3 */ u_char threshold; /* Byte 4 Prefetch threshold */ u_char max_prefetch; /* Byte 5 Max. prefetch */ u_char max_multiplier; /* Byte 6 Max. prefetch multiplier */ u_char min_prefetch; /* Byte 7 Min. prefetch */ u_char min_multiplier; /* Byte 8 Min. prefetch multiplier */ u_char res3[8]; /* Byte 9 */};#endif#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */struct cd_mode_page_05 { /* write parameters */ MP_P_CODE; /* parsave & pagecode */ u_char p_len; /* 0x32 = 50 Bytes */ Ucbit write_type : 4; /* Session write type (PACKET/TAO...)*/ Ucbit test_write : 1; /* Do not actually write data */ Ucbit res_2 : 3; Ucbit track_mode : 4; /* Track mode (Q-sub control nibble) */ Ucbit copy : 1; /* 1st higher gen of copy prot track ~*/ Ucbit fp : 1; /* Fixed packed (if in packet mode) */ Ucbit multi_session : 2; /* Multi session write type */ Ucbit dbtype : 4; /* Data block type */ Ucbit res_4 : 4; /* Reserved */ u_char res_56[2]; /* Reserved */ Ucbit host_appl_code : 6; /* Host application code of disk */ Ucbit res_7 : 2; /* Reserved */ u_char session_format; /* Session format (DA/CDI/XA) */ u_char res_9; /* Reserved */ u_char packet_size[4]; /* # of user datablocks/fixed packet */ u_char audio_pause_len[2]; /* # of blocks where index is zero */ u_char media_cat_number[16]; /* Media catalog Number (MCN) */ u_char ISRC[14]; /* ISRC for this track */ u_char sub_header[4]; u_char vendor_uniq[4];};#else /* Motorola byteorder */struct cd_mode_page_05 { /* write parameters */ MP_P_CODE; /* parsave & pagecode */ u_char p_len; /* 0x32 = 50 Bytes */ Ucbit res_2 : 3; Ucbit test_write : 1; /* Do not actually write data */ Ucbit write_type : 4; /* Session write type (PACKET/TAO...)*/ Ucbit multi_session : 2; /* Multi session write type */ Ucbit fp : 1; /* Fixed packed (if in packet mode) */ Ucbit copy : 1; /* 1st higher gen of copy prot track */ Ucbit track_mode : 4; /* Track mode (Q-sub control nibble) */ Ucbit res_4 : 4; /* Reserved */ Ucbit dbtype : 4; /* Data block type */ u_char res_56[2]; /* Reserved */ Ucbit res_7 : 2; /* Reserved */ Ucbit host_appl_code : 6; /* Host application code of disk */ u_char session_format; /* Session format (DA/CDI/XA) */ u_char res_9; /* Reserved */ u_char packet_size[4]; /* # of user datablocks/fixed packet */ u_char audio_pause_len[2]; /* # of blocks where index is zero */ u_char media_cat_number[16]; /* Media catalog Number (MCN) */ u_char ISRC[14]; /* ISRC for this track */ u_char sub_header[4]; u_char vendor_uniq[4];};#endif#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */struct cd_mode_page_2A { /* CD Cap / mech status */ MP_P_CODE; /* parsave & pagecode */ u_char p_len; /* 0x14 = 20 Bytes */ Ucbit cd_r_read : 1; /* Reads CD-R media */ Ucbit cd_rw_read : 1; /* Reads CD-RW media */ Ucbit method2 : 1; /* Reads fixed packet method2 media */ Ucbit dvd_rom_read : 1; /* Reads DVD ROM media */ Ucbit dvd_r_read : 1; /* Reads DVD-R media */ Ucbit dvd_ram_read : 1; /* Reads DVD-RAM media */ Ucbit res_2_67 : 2; /* Reserved */ Ucbit cd_r_write : 1; /* Supports writing CD-R media */ Ucbit cd_rw_write : 1; /* Supports writing CD-RW media */ Ucbit test_write : 1; /* Supports emulation write */ Ucbit res_3_3 : 1; /* Reserved */ Ucbit dvd_r_write : 1; /* Supports writing DVD-R media */ Ucbit dvd_ram_write : 1; /* Supports writing DVD-RAM media */ Ucbit res_3_67 : 2; /* Reserved */ Ucbit audio_play : 1; /* Supports Audio play operation */ Ucbit composite : 1; /* Deliveres composite A/V stream */ Ucbit digital_port_2 : 1; /* Supports digital output on port 2 */ Ucbit digital_port_1 : 1; /* Supports digital output on port 1 */ Ucbit mode_2_form_1 : 1; /* Reads Mode-2 form 1 media (XA) */ Ucbit mode_2_form_2 : 1; /* Reads Mode-2 form 2 media */ Ucbit multi_session : 1; /* Reads multi-session media */ Ucbit res_4 : 1; /* Reserved */ Ucbit cd_da_supported : 1; /* Reads audio data with READ CD cmd */ Ucbit cd_da_accurate : 1; /* READ CD data stream is accurate */ Ucbit rw_supported : 1; /* Reads R-W sub channel information */ Ucbit rw_deint_corr : 1; /* Reads de-interleved R-W sub chan */ Ucbit c2_pointers : 1; /* Supports C2 error pointers */ Ucbit ISRC : 1; /* Reads ISRC information */ Ucbit UPC : 1; /* Reads media catalog number (UPC) */ Ucbit read_bar_code : 1; /* Supports reading bar codes */ Ucbit lock : 1; /* PREVENT/ALLOW may lock media */ Ucbit lock_state : 1; /* Lock state 0=unlocked 1=locked */ Ucbit prevent_jumper : 1; /* State of prev/allow jumper 0=pres */ Ucbit eject : 1; /* Ejects disc/cartr with STOP LoEj */ Ucbit res_6_4 : 1; /* Reserved */ Ucbit loading_type : 3; /* Loading mechanism type */ Ucbit sep_chan_vol : 1; /* Vol controls each channel separat */ Ucbit sep_chan_mute : 1; /* Mute controls each channel separat*/ Ucbit disk_present_rep: 1; /* Changer supports disk present rep */ Ucbit sw_slot_sel : 1; /* Load empty slot in changer */ Ucbit res_7 : 4; /* Reserved */ u_char max_read_speed[2]; /* Max. read speed in KB/s */ u_char num_vol_levels[2]; /* # of supported volume levels */ u_char buffer_size[2]; /* Buffer size for the data in KB */ u_char cur_read_speed[2]; /* Current read speed in KB/s */ u_char res_16; /* Reserved */ Ucbit res_17_0 : 1; /* Reserved */ Ucbit BCK : 1; /* Data valid on falling edge of BCK */ Ucbit RCK : 1; /* Set: HIGH high LRCK=left channel */ Ucbit LSBF : 1; /* Set: LSB first Clear: MSB first */ Ucbit length : 2; /* 0=32BCKs 1=16BCKs 2=24BCKs 3=24I2c*/ Ucbit res_17 : 2; /* Reserved */ u_char max_write_speed[2]; /* Max. write speed supported in KB/s*/ u_char cur_write_speed[2]; /* Current write speed in KB/s */};#else /* Motorola byteorder */struct cd_mode_page_2A { /* CD Cap / mech status */ MP_P_CODE; /* parsave & pagecode */ u_char p_len; /* 0x14 = 20 Bytes */ Ucbit res_2_67 : 2; /* Reserved */ Ucbit dvd_ram_read : 1; /* Reads DVD-RAM media */ Ucbit dvd_r_read : 1; /* Reads DVD-R media */ Ucbit dvd_rom_read : 1; /* Reads DVD ROM media */ Ucbit method2 : 1; /* Reads fixed packet method2 media */ Ucbit cd_rw_read : 1; /* Reads CD-RW media */ Ucbit cd_r_read : 1; /* Reads CD-R media */ Ucbit res_3_67 : 2; /* Reserved */ Ucbit dvd_ram_write : 1; /* Supports writing DVD-RAM media */ Ucbit dvd_r_write : 1; /* Supports writing DVD-R media */ Ucbit res_3_3 : 1; /* Reserved */ Ucbit test_write : 1; /* Supports emulation write */ Ucbit cd_rw_write : 1; /* Supports writing CD-RW media */ Ucbit cd_r_write : 1; /* Supports writing CD-R media */ Ucbit res_4 : 1; /* Reserved */ Ucbit multi_session : 1; /* Reads multi-session media */ Ucbit mode_2_form_2 : 1; /* Reads Mode-2 form 2 media */ Ucbit mode_2_form_1 : 1; /* Reads Mode-2 form 1 media (XA) */ Ucbit digital_port_1 : 1; /* Supports digital output on port 1 */ Ucbit digital_port_2 : 1; /* Supports digital output on port 2 */ Ucbit composite : 1; /* Deliveres composite A/V stream */ Ucbit audio_play : 1; /* Supports Audio play operation */ Ucbit read_bar_code : 1; /* Supports reading bar codes */ Ucbit UPC : 1; /* Reads media catalog number (UPC) */ Ucbit ISRC : 1; /* Reads ISRC information */ Ucbit c2_pointers : 1; /* Supports C2 error pointers */ Ucbit rw_deint_corr : 1; /* Reads de-interleved R-W sub chan */ Ucbit rw_supported : 1; /* Reads R-W sub channel information */ Ucbit cd_da_accurate : 1; /* READ CD data stream is accurate */ Ucbit cd_da_supported : 1; /* Reads audio data with READ CD cmd */ Ucbit loading_type : 3; /* Loading mechanism type */ Ucbit res_6_4 : 1; /* Reserved */ Ucbit eject : 1; /* Ejects disc/cartr with STOP LoEj */ Ucbit prevent_jumper : 1; /* State of prev/allow jumper 0=pres */ Ucbit lock_state : 1; /* Lock state 0=unlocked 1=locked */ Ucbit lock : 1; /* PREVENT/ALLOW may lock media */ Ucbit res_7 : 4; /* Reserved */ Ucbit sw_slot_sel : 1; /* Load empty slot in changer */ Ucbit disk_present_rep: 1; /* Changer supports disk present rep */ Ucbit sep_chan_mute : 1; /* Mute controls each channel separat*/ Ucbit sep_chan_vol : 1; /* Vol controls each channel separat */ u_char max_read_speed[2]; /* Max. read speed in KB/s */ u_char num_vol_levels[2]; /* # of supported volume levels */ u_char buffer_size[2]; /* Buffer size for the data in KB */ u_char cur_read_speed[2]; /* Current read speed in KB/s */ u_char res_16; /* Reserved */ Ucbit res_17 : 2; /* Reserved */ Ucbit length : 2; /* 0=32BCKs 1=16BCKs 2=24BCKs 3=24I2c*/ Ucbit LSBF : 1; /* Set: LSB first Clear: MSB first */ Ucbit RCK : 1; /* Set: HIGH high LRCK=left channel */ Ucbit BCK : 1; /* Data valid on falling edge of BCK */ Ucbit res_17_0 : 1; /* Reserved */ u_char max_write_speed[2]; /* Max. write speed supported in KB/s*/ u_char cur_write_speed[2]; /* Current write speed in KB/s */};#endif#define LT_CADDY 0#define LT_TRAY 1#define LT_POP_UP 2#define LT_RES3 3#define LT_CHANGER_IND 4#define LT_CHANGER_CART 5#define LT_RES6 6#define LT_RES7 7struct scsi_mode_data { struct scsi_mode_header header; struct scsi_mode_blockdesc blockdesc; union pagex { struct acb_mode_data acb; struct scsi_mode_page_01 page1; struct scsi_mode_page_02 page2; struct scsi_mode_page_03 page3; struct scsi_mode_page_04 page4; struct scsi_mode_page_05 page5; struct scsi_mode_page_07 page7; struct scsi_mode_page_08 page8; struct scsi_mode_page_09 page9; struct scsi_mode_page_0A pageA; struct scsi_mode_page_0B pageB; struct scsi_mode_page_0C pageC; struct scsi_mode_page_0D pageD; struct sony_mode_page_20 sony20; struct toshiba_mode_page_20 toshiba20; struct ccs_mode_page_38 ccs38; } pagex;};struct scsi_capacity { long c_baddr; /* must convert byteorder!! */ long c_bsize; /* must convert byteorder!! */};#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */struct scsi_def_header { Ucbit : 8; Ucbit format : 3; Ucbit gdl : 1; Ucbit mdl : 1; Ucbit : 3; u_char length[2];};#else /* Motorola byteorder */struct scsi_def_header { Ucbit : 8; Ucbit : 3; Ucbit mdl : 1; Ucbit gdl : 1; Ucbit format : 3; u_char length[2];};#endif#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */struct scsi_format_header { Ucbit res : 8; /* Adaptec 5500: 1 --> format track */ Ucbit vu : 1; Ucbit : 3; Ucbit serr : 1; /* Stop on error */ Ucbit dcert : 1; /* Disable certification */ Ucbit dmdl : 1; /* Disable manufacturer defect list */ Ucbit enable : 1; /* Enable to use the next 3 bits */ u_char length[2]; /* Length of following list in bytes*/};#else /* Motorola byteorder */struct scsi_format_header { Ucbit res : 8; /* Adaptec 5500: 1 --> format track */ Ucbit enable : 1; /* Enable to use the next 3 bits */ Ucbit dmdl : 1; /* Disable manufacturer defect list */ Ucbit dcert : 1; /* Disable certification */ Ucbit serr : 1; /* Stop on error */ Ucbit : 3; Ucbit vu : 1; u_char length[2]; /* Length of following list in bytes*/};#endifstruct scsi_def_bfi { u_char cyl[3]; u_char head; u_char bfi[4];};struct scsi_def_phys { u_char cyl[3]; u_char head; u_char sec[4];};struct scsi_def_list { struct scsi_def_header hd; union { u_char list_block[1][4]; struct scsi_def_bfi list_bfi[1]; struct scsi_def_phys list_phys[1]; } def_list;};struct scsi_format_data { struct scsi_format_header hd; union { u_char list_block[1][4]; struct scsi_def_bfi list_bfi[1]; struct scsi_def_phys list_phys[1]; } def_list;};#define def_block def_list.list_block#define def_bfi def_list.list_bfi#define def_phys def_list.list_phys#define SC_DEF_BLOCK 0#define SC_DEF_BFI 4#define SC_DEF_PHYS 5#define SC_DEF_VU 6#define SC_DEF_RES 7struct scsi_send_diag_cmd { u_char cmd; u_char addr[4]; Ucbit : 8;};#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */struct scsi_sector_header { u_char cyl[2]; u_char head; u_char sec; Ucbit : 5; Ucbit rp : 1; Ucbit sp : 1; Ucbit dt : 1;};#else /* Motorola byteorder */struct scsi_sector_header { u_char cyl[2]; u_char head; u_char sec; Ucbit dt : 1; Ucbit sp : 1; Ucbit rp : 1; Ucbit : 5;};#endif#endif /* _SCSIREG_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -