00001 #ifndef config_table_h 00002 #define config_table_h 00003 00004 struct _config_header { 00005 union { 00006 struct { 00007 unsigned int iogen_cfg_tbl_l_hw_id_mask_lo; 00008 unsigned int iogen_cfg_tbl_l_hw_id_mask_hi; 00009 }; 00010 unsigned long long iogen_cfg_tbl_q_hw_id_mask; 00011 }; 00012 }; 00013 00014 #define IOGEN_CFG_TBL_K_HEADER_LEN 8 00015 00016 struct _config_memdsc { 00017 char *config_memdsc_ps_fragment; 00018 short int config_memdsc_w_free; 00019 char config_memdsc_b_refcnt; 00020 char config_memdsc_b_fill; 00021 short int config_memdsc_w_size; 00022 char config_memdsc_b_type; 00023 char config_memdsc_b_subtype; 00024 int config_memdsc_l_actual_size; 00025 }; 00026 00027 #define IOGEN_CFG_TBL_M_MSCP 0x1 00028 #define IOGEN_CFG_TBL_M_SCSI 0x2 00029 #define IOGEN_CFG_TBL_M_NOVECTOR 0x4 00030 #define IOGEN_CFG_TBL_M_DISK 0x8 00031 #define IOGEN_CFG_TBL_M_NETWORK 0x10 00032 #define IOGEN_CFG_TBL_M_PORT 0x20 00033 #define IOGEN_CFG_TBL_M_CLASS 0x40 00034 #define IOGEN_CFG_TBL_M_PSEUDO 0x80 00035 #define IOGEN_CFG_TBL_M_BOOT 0x100 00036 #define IOGEN_CFG_TBL_M_CASE_BLIND 0x200 00037 #define IOGEN_CFG_TBL_M_NO_TABLE 0x400 00038 #define IOGEN_CFG_TBL_M_EXTENDED_ID 0x800 00039 #define IOGEN_CFG_TBL_M_FOREIGN 0x1000 00040 #define IOGEN_CFG_TBL_M_FIBRE 0x2000 00041 #define IOGEN_CFG_TBL_M_ULP 0x4000 00042 #define IOGEN_CFG_TBL_M_LOAD_DRV_CLASS 0x8000 00043 #define IOGEN_CFG_TBL_M_NISCA 0x10000 00044 #define IOGEN_CFG_TBL_M_ISA_ON_EISA 0x20000 00045 #define IOGEN_CFG_TBL_M_SYS_DEV 0x1 00046 #define IOGEN_CFG_TBL_M_REMOTE 0x2 00047 #define IOGEN_CFG_TBL_M_ALT_PREFIX 0x4 00048 #define IOGEN_CFG_TBL_M_NO_CTRL_LTR 0x8 00049 #define IOGEN_CFG_TBL_M_HW_CTRL_LTR 0x10 00050 #define IOGEN_CFG_TBL_M_UNIT_0 0x20 00051 #define IOGEN_CFG_TBL_M_CTRL_LTR_A 0x40 00052 #define IOGEN_CFG_TBL_M_CREATE_DEV 0x80 00053 00054 struct _iogen_cfg_tbl { 00055 union { 00056 struct { 00057 unsigned int iogen_cfg_tbl_l_hw_id_lo; 00058 unsigned int iogen_cfg_tbl_l_hw_id_hi; 00059 }; 00060 unsigned long long iogen_cfg_tbl_q_hw_id; 00061 char iogen_cfg_tbl_b_hw_id_string [8]; 00062 }; 00063 void *iogen_cfg_tbl_ps_driver_name; 00064 char *iogen_cfg_tbl_ps_devnam; 00065 unsigned int iogen_cfg_tbl_l_vector_cnt; 00066 unsigned int iogen_cfg_tbl_l_vector_align; 00067 unsigned int iogen_cfg_tbl_l_num_units; 00068 union { 00069 unsigned int iogen_cfg_tbl_l_flags; 00070 struct { 00071 unsigned iogen_cfg_tbl_v_mscp : 1; 00072 unsigned iogen_cfg_tbl_v_scsi : 1; 00073 unsigned iogen_cfg_tbl_v_novector : 1; 00074 unsigned iogen_cfg_tbl_v_disk : 1; 00075 unsigned iogen_cfg_tbl_v_network : 1; 00076 unsigned iogen_cfg_tbl_v_port : 1; 00077 unsigned iogen_cfg_tbl_v_class : 1; 00078 unsigned iogen_cfg_tbl_v_pseudo : 1; 00079 unsigned iogen_cfg_tbl_v_boot : 1; 00080 unsigned iogen_cfg_tbl_v_case_blind : 1; 00081 unsigned iogen_cfg_tbl_v_no_table : 1; 00082 unsigned iogen_cfg_tbl_v_extended_id : 1; 00083 unsigned iogen_cfg_tbl_v_foreign : 1; 00084 unsigned iogen_cfg_tbl_v_fibre : 1; 00085 unsigned iogen_cfg_tbl_v_ulp : 1; 00086 unsigned iogen_cfg_tbl_v_load_drv_class : 1; 00087 unsigned iogen_cfg_tbl_v_nisca : 1; 00088 unsigned iogen_cfg_tbl_v_isa_on_eisa : 1; 00089 unsigned iogen_cfg_tbl_v_fill_0_ : 6; 00090 }; 00091 }; 00092 char *iogen_cfg_tbl_ps_description; 00093 unsigned int iogen_cfg_tbl_l_adp_type; 00094 char *iogen_cfg_tbl_ps_assoc_drv; 00095 char *iogen_cfg_tbl_ps_dtype; 00096 char *iogen_cfg_tbl_ps_boot_class; 00097 union { 00098 unsigned int iogen_cfg_tbl_l_boot_flags; 00099 struct { 00100 unsigned iogen_cfg_tbl_v_sys_dev : 1; 00101 unsigned iogen_cfg_tbl_v_remote : 1; 00102 unsigned iogen_cfg_tbl_v_alt_prefix : 1; 00103 unsigned iogen_cfg_tbl_v_no_ctrl_ltr : 1; 00104 unsigned iogen_cfg_tbl_v_hw_ctrl_ltr : 1; 00105 unsigned iogen_cfg_tbl_v_unit_0 : 1; 00106 unsigned iogen_cfg_tbl_v_ctrl_ltr_a : 1; 00107 unsigned iogen_cfg_tbl_v_create_dev : 1; 00108 }; 00109 }; 00110 char *iogen_cfg_tbl_ps_private; 00111 int iogen_cfg_tbl_l_avail; 00112 int iogen_cfg_tbl_l_avail2; 00113 char iogen_cfg_tbl_b_fill_1_ [4]; 00114 }; 00115 00116 #define IOGEN_CFG_TBL_K_ENTRY_SIZE 72 00117 00118 struct _config_table { 00119 struct _config_header config_table_r_header; 00120 struct _iogen_cfg_tbl config_table_r_entries; 00121 }; 00122 00123 struct _config_mem { 00124 struct _config_memdsc config_mem_r_memdsc; 00125 struct _config_header config_mem_r_header; 00126 struct _iogen_cfg_tbl config_mem_r_entries; 00127 }; 00128 00129 #endif 00130 00131