📄 scsireg.h
字号:
*/
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct { /* Direct access format Paramters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x16 = 24 Bytes */
Uchar trk_per_zone[2];
Uchar alt_sec_per_zone[2];
Uchar alt_trk_per_zone[2];
Uchar alt_trk_per_vol[2];
Uchar sect_per_trk[2];
Uchar bytes_per_phys_sect[2];
Uchar interleave[2];
Uchar trk_skew[2];
Uchar cyl_skew[2];
Ucbit : 3;
Ucbit inhibit_save : 1;
Ucbit fmt_by_surface : 1;
Ucbit removable : 1;
Ucbit hard_sec : 1;
Ucbit soft_sec : 1;
Uchar res[3];
}scsi_mode_page_03;
#else /* Motorola byteorder */
typedef struct { /* Direct access format Paramters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x16 = 24 Bytes */
Uchar trk_per_zone[2];
Uchar alt_sec_per_zone[2];
Uchar alt_trk_per_zone[2];
Uchar alt_trk_per_vol[2];
Uchar sect_per_trk[2];
Uchar bytes_per_phys_sect[2];
Uchar interleave[2];
Uchar trk_skew[2];
Uchar cyl_skew[2];
Ucbit soft_sec : 1;
Ucbit hard_sec : 1;
Ucbit removable : 1;
Ucbit fmt_by_surface : 1;
Ucbit inhibit_save : 1;
Ucbit : 3;
Uchar res[3];
}scsi_mode_page_03;
#endif
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct { /* Rigid disk Geometry Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x16 = 24 Bytes */
Uchar ncyl[3];
Uchar nhead;
Uchar start_precomp[3];
Uchar start_red_wcurrent[3];
Uchar step_rate[2];
Uchar landing_zone[3];
Ucbit rot_pos_locking : 2; /* Start SCSI-2 */
Ucbit : 6; /* Start SCSI-2 */
Uchar rotational_off;
Uchar res1;
Uchar rotation_rate[2];
Uchar res2[2];
}scsi_mode_page_04;
#else /* Motorola byteorder */
typedef struct { /* Rigid disk Geometry Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x16 = 24 Bytes */
Uchar ncyl[3];
Uchar nhead;
Uchar start_precomp[3];
Uchar start_red_wcurrent[3];
Uchar step_rate[2];
Uchar landing_zone[3];
Ucbit : 6; /* Start SCSI-2 */
Ucbit rot_pos_locking : 2; /* Start SCSI-2 */
Uchar rotational_off;
Uchar res1;
Uchar rotation_rate[2];
Uchar res2[2];
}scsi_mode_page_04;
#endif
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct { /* Flexible disk Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x1E = 32 Bytes */
Uchar transfer_rate[2];
Uchar nhead;
Uchar sect_per_trk;
Uchar bytes_per_phys_sect[2];
Uchar ncyl[2];
Uchar start_precomp[2];
Uchar start_red_wcurrent[2];
Uchar step_rate[2];
Uchar step_pulse_width;
Uchar head_settle_delay[2];
Uchar motor_on_delay;
Uchar motor_off_delay;
Ucbit spc : 4;
Ucbit : 4;
Ucbit : 5;
Ucbit mo : 1;
Ucbit ssn : 1;
Ucbit trdy : 1;
Uchar write_compensation;
Uchar head_load_delay;
Uchar head_unload_delay;
Ucbit pin_2_use : 4;
Ucbit pin_34_use : 4;
Ucbit pin_1_use : 4;
Ucbit pin_4_use : 4;
Uchar rotation_rate[2];
Uchar res[2];
}scsi_mode_page_05;
#else /* Motorola byteorder */
typedef struct { /* Flexible disk Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x1E = 32 Bytes */
Uchar transfer_rate[2];
Uchar nhead;
Uchar sect_per_trk;
Uchar bytes_per_phys_sect[2];
Uchar ncyl[2];
Uchar start_precomp[2];
Uchar start_red_wcurrent[2];
Uchar step_rate[2];
Uchar step_pulse_width;
Uchar head_settle_delay[2];
Uchar motor_on_delay;
Uchar motor_off_delay;
Ucbit trdy : 1;
Ucbit ssn : 1;
Ucbit mo : 1;
Ucbit : 5;
Ucbit : 4;
Ucbit spc : 4;
Uchar write_compensation;
Uchar head_load_delay;
Uchar head_unload_delay;
Ucbit pin_34_use : 4;
Ucbit pin_2_use : 4;
Ucbit pin_4_use : 4;
Ucbit pin_1_use : 4;
Uchar rotation_rate[2];
Uchar res[2];
}scsi_mode_page_05;
#endif
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct { /* Verify Error recovery */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x0A = 12 Bytes */
Ucbit disa_correction : 1; /* Byte 2 */
Ucbit term_on_rec_err : 1;
Ucbit report_rec_err : 1;
Ucbit en_early_corr : 1;
Ucbit res : 4; /* Byte 2 */
Uchar ve_retry_count; /* Byte 3 */
Uchar ve_correction_span;
char res2[5]; /* Byte 5 */
Uchar ve_recov_timelim[2]; /* Byte 10 */
}scsi_mode_page_07;
#else /* Motorola byteorder */
typedef struct { /* Verify Error recovery */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x0A = 12 Bytes */
Ucbit res : 4; /* Byte 2 */
Ucbit en_early_corr : 1;
Ucbit report_rec_err : 1;
Ucbit term_on_rec_err : 1;
Ucbit disa_correction : 1; /* Byte 2 */
Uchar ve_retry_count; /* Byte 3 */
Uchar ve_correction_span;
char res2[5]; /* Byte 5 */
Uchar ve_recov_timelim[2]; /* Byte 10 */
}scsi_mode_page_07;
#endif
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct { /* Caching Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x0A = 12 Bytes */
Ucbit disa_rd_cache : 1; /* Byte 2 */
Ucbit muliple_fact : 1;
Ucbit en_wt_cache : 1;
Ucbit res : 5; /* Byte 2 */
Ucbit wt_ret_pri : 4; /* Byte 3 */
Ucbit demand_rd_ret_pri: 4; /* Byte 3 */
Uchar disa_pref_tr_len[2]; /* Byte 4 */
Uchar min_pref[2]; /* Byte 6 */
Uchar max_pref[2]; /* Byte 8 */
Uchar max_pref_ceiling[2]; /* Byte 10 */
}scsi_mode_page_08;
#else /* Motorola byteorder */
typedef struct { /* Caching Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x0A = 12 Bytes */
Ucbit res : 5; /* Byte 2 */
Ucbit en_wt_cache : 1;
Ucbit muliple_fact : 1;
Ucbit disa_rd_cache : 1; /* Byte 2 */
Ucbit demand_rd_ret_pri: 4; /* Byte 3 */
Ucbit wt_ret_pri : 4;
Uchar disa_pref_tr_len[2]; /* Byte 4 */
Uchar min_pref[2]; /* Byte 6 */
Uchar max_pref[2]; /* Byte 8 */
Uchar max_pref_ceiling[2]; /* Byte 10 */
}scsi_mode_page_08;
#endif
typedef struct { /* Peripheral device Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* >= 0x06 = 8 Bytes */
Uchar interface_id[2]; /* Byte 2 */
Uchar res[4]; /* Byte 4 */
Uchar vendor_specific[1]; /* Byte 8 */
}scsi_mode_page_09;
#define PDEV_SCSI 0x0000 /* scsi interface */
#define PDEV_SMD 0x0001 /* SMD interface */
#define PDEV_ESDI 0x0002 /* ESDI interface */
#define PDEV_IPI2 0x0003 /* IPI-2 interface */
#define PDEV_IPI3 0x0004 /* IPI-3 interface */
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct { /* Common device Control Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x06 = 8 Bytes */
Ucbit rep_log_exeption: 1; /* Byte 2 */
Ucbit res : 7; /* Byte 2 */
Ucbit dis_queuing : 1; /* Byte 3 */
Ucbit queuing_err_man : 1;
Ucbit res2 : 2;
Ucbit queue_alg_mod : 4; /* Byte 3 */
Ucbit EAENP : 1; /* Byte 4 */
Ucbit UAENP : 1;
Ucbit RAENP : 1;
Ucbit res3 : 4;
Ucbit en_ext_cont_all : 1; /* Byte 4 */
Ucbit res4 : 8;
Uchar ready_aen_hold_per[2]; /* Byte 6 */
}scsi_mode_page_0A;
#else /* Motorola byteorder */
typedef struct { /* Common device Control Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x06 = 8 Bytes */
Ucbit res : 7; /* Byte 2 */
Ucbit rep_log_exeption: 1; /* Byte 2 */
Ucbit queue_alg_mod : 4; /* Byte 3 */
Ucbit res2 : 2;
Ucbit queuing_err_man : 1;
Ucbit dis_queuing : 1; /* Byte 3 */
Ucbit en_ext_cont_all : 1; /* Byte 4 */
Ucbit res3 : 4;
Ucbit RAENP : 1;
Ucbit UAENP : 1;
Ucbit EAENP : 1; /* Byte 4 */
Ucbit res4 : 8;
Uchar ready_aen_hold_per[2]; /* Byte 6 */
}scsi_mode_page_0A;
#endif
#define CTRL_QMOD_RESTRICT 0x0
#define CTRL_QMOD_UNRESTRICT 0x1
typedef struct { /* Medium Types Supported Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x06 = 8 Bytes */
Uchar res[2]; /* Byte 2 */
Uchar medium_one_supp; /* Byte 4 */
Uchar medium_two_supp; /* Byte 5 */
Uchar medium_three_supp; /* Byte 6 */
Uchar medium_four_supp; /* Byte 7 */
}scsi_mode_page_0B;
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct { /* Notch & Partition Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x16 = 24 Bytes */
Ucbit res : 6; /* Byte 2 */
Ucbit logical_notch : 1;
Ucbit notched_drive : 1; /* Byte 2 */
Uchar res2; /* Byte 3 */
Uchar max_notches[2]; /* Byte 4 */
Uchar active_notch[2]; /* Byte 6 */
Uchar starting_boundary[4]; /* Byte 8 */
Uchar ending_boundary[4]; /* Byte 12 */
Uchar pages_notched[8]; /* Byte 16 */
}scsi_mode_page_0C;
#else /* Motorola byteorder */
typedef struct { /* Notch & Partition Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x16 = 24 Bytes */
Ucbit notched_drive : 1; /* Byte 2 */
Ucbit logical_notch : 1;
Ucbit res : 6; /* Byte 2 */
Uchar res2; /* Byte 3 */
Uchar max_notches[2]; /* Byte 4 */
Uchar active_notch[2]; /* Byte 6 */
Uchar starting_boundary[4]; /* Byte 8 */
Uchar ending_boundary[4]; /* Byte 12 */
Uchar pages_notched[8]; /* Byte 16 */
}scsi_mode_page_0C;
#endif
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct { /* CD-ROM Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x06 = 8 Bytes */
Uchar res; /* Byte 2 */
Ucbit inact_timer_mult: 4; /* Byte 3 */
Ucbit res2 : 4; /* Byte 3 */
Uchar s_un_per_m_un[2]; /* Byte 4 */
Uchar f_un_per_s_un[2]; /* Byte 6 */
}scsi_mode_page_0D;
#else /* Motorola byteorder */
typedef struct { /* CD-ROM Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x06 = 8 Bytes */
Uchar res; /* Byte 2 */
Ucbit res2 : 4; /* Byte 3 */
Ucbit inact_timer_mult: 4; /* Byte 3 */
Uchar s_un_per_m_un[2]; /* Byte 4 */
Uchar f_un_per_s_un[2]; /* Byte 6 */
}scsi_mode_page_0D;
#endif
typedef struct { /* Sony Format Mode Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x0A = 12 Bytes */
Uchar format_mode;
Uchar format_type;
#define num_bands user_band_size /* Gilt bei Type 1 */
Uchar user_band_size[4]; /* Gilt bei Type 0 */
Uchar spare_band_size[2];
Uchar res[2];
}sony_mode_page_20;
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct { /* Toshiba Speed Control Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x01 = 3 Bytes */
Ucbit speed : 1;
Ucbit res : 7;
}toshiba_mode_page_20;
#else /* Motorola byteorder */
typedef struct { /* Toshiba Speed Control Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x01 = 3 Bytes */
Ucbit res : 7;
Ucbit speed : 1;
}toshiba_mode_page_20;
#endif
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct { /* CCS Caching Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar 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 */
Uchar threshold; /* Byte 4 Prefetch threshold */
Uchar max_prefetch; /* Byte 5 Max. prefetch */
Uchar max_multiplier; /* Byte 6 Max. prefetch multiplier */
Uchar min_prefetch; /* Byte 7 Min. prefetch */
Uchar min_multiplier; /* Byte 8 Min. prefetch multiplier */
Uchar res3[8]; /* Byte 9 */
}ccs_mode_page_38;
#else /* Motorola byteorder */
typedef struct { /* CCS Caching Parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar 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 */
Uchar threshold; /* Byte 4 Prefetch threshold */
Uchar max_prefetch; /* Byte 5 Max. prefetch */
Uchar max_multiplier; /* Byte 6 Max. prefetch multiplier */
Uchar min_prefetch; /* Byte 7 Min. prefetch */
Uchar min_multiplier; /* Byte 8 Min. prefetch multiplier */
Uchar res3[8]; /* Byte 9 */
}ccs_mode_page_38;
#endif
#if defined(_BIT_FIELDS_LTOH) /* Intel byteorder */
typedef struct
{
Uchar fileNumber;
Uchar channelNumber;
Uchar subMode;
Uchar coding;
}sub_header;
typedef struct { /* write parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x32 = 50 Bytes */
Ucbit write_type : 4; /* Session write type (PACKET/TAO...)*/
Ucbit test_write : 1; /* Do not actually write data */
Ucbit ls_v : 1;
Ucbit BUFE : 1;
Ucbit res_2 : 1;
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 */
Uchar link_size; /* link size */
Uchar res_6; /* Reserved */
Ucbit host_appl_code : 6; /* Host application code of disk */
Ucbit res_7 : 2; /* Reserved */
Uchar session_format; /* Session format (DA/CDI/XA) */
Uchar res_9; /* Reserved */
Uchar packet_size[4]; /* # of user datablocks/fixed packet */
Uchar audio_pause_len[2]; /* # of blocks where index is zero */
Uchar media_cat_number[16]; /* Media catalog Number (MCN) */
Uchar ISRC[16]; /* ISRC for this track */
sub_header sub_h;
Uchar vendor_uniq[4];
}cd_mode_page_05;
#else /* Motorola byteorder */
typedef struct { /* write parameters */
MP_P_CODE; /* parsave & pagecode */
Uchar p_len; /* 0x32 = 50 Bytes */
Ucbit res_2 : 1;
Ucbit BUFE : 1;
Ucbit ls_v : 1;
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 */
Uchar link_size; /* link size */
Uchar res_6; /* Reserved */
Ucbit res_7 : 2; /* Reserved */
Ucbit host_appl_code : 6; /* Host application code of disk */
Uchar session_format; /* Session format (DA/CDI/XA) */
Uchar res_9; /* Reserved */
Uchar packet_size[4]; /* # of user datablocks/fixed packet */
Uchar audio_pause_len[2]; /* # of blocks where index is zero */
Uchar media_cat_number[16]; /* Media catalog Number (MCN) */
Uchar ISRC[16]; /* ISRC for this track */
Uchar sub_header[4];
Uchar vendor_uniq[4];
}cd_mode_page_05;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -