00001 #ifndef imcbdef_h 00002 #define imcbdef_h 00003 00004 #define IMCB_K_IMCB_TYPE_CODE 127 00005 #define IMCB_K_MAIN_PROGRAM 1 00006 #define IMCB_K_MERGED_IMAGE 2 00007 #define IMCB_K_GLOBAL_IMAGE_SECTION 3 00008 #define IMCB_M_EXPREG 0x1 00009 #define IMCB_M_SHAREABLE 0x2 00010 #define IMCB_M_OPEN_FOR_WRITE 0x4 00011 #define IMCB_M_RES_HEADER 0x8 00012 #define IMCB_M_LOAD_IMAGE 0x10 00013 #define IMCB_M_INITIALIZE 0x20 00014 #define IMCB_M_DONE 0x40 00015 #define IMCB_M_SYS_STB 0x80 00016 #define IMCB_M_IN_CIRCULARITY 0x100 00017 #define IMCB_M_MAPPED 0x200 00018 #define IMCB_M_PROTECTED 0x400 00019 #define IMCB_M_PARENT_PROT 0x800 00020 #define IMCB_M_CMOD_VECTOR_MAPPED 0x1000 00021 #define IMCB_M_XLATED 0x2000 00022 #define IMCB_M_PROTSECT 0x4000 00023 #define IMCB_M_NOTPROTSECT 0x8000 00024 #define IMCB_M_DISCONTIGUOUS 0x10000 00025 #define IMCB_M_FORKABLE 0x20000 00026 #define IMCB_M_COMPRESS_DATASEC 0x40000 00027 #define IMCB_M_VERSION_SAFE 0x80000 00028 #define IMCB_M_PRIMARY_FIX 0x100000 00029 #define IMCB_M_DATA_RESIDENT 0x200000 00030 #define IMCB_M_SHARE_LINK 0x400000 00031 #define IMCB_M_AUTOACT 0x800000 00032 #define IMCB_M_MKTHREADS 0x1000000 00033 #define IMCB_M_UPCALLS 0x2000000 00034 #define IMCB_M_SYSTEM_IMAGE 0x4000000 00035 #define IMCB_M_MATCH_CONTROL 0x7 00036 #define IMCB_M_MINOR_ID 0xFFFFFF 00037 #define IMCB_M_MAJOR_ID 0xFF000000 00038 #define IMCB_C_LENGTH 280 00039 #define IMCB_K_LENGTH 280 00040 #define IMCB_S_IMCB$DEF 280 00041 00042 struct _imcb { 00043 struct _imcb *imcb_l_flink; 00044 struct _imcb *imcb_l_blink; 00045 unsigned short int imcb_w_size; 00046 unsigned char imcb_b_type; 00047 char imcb_b_imcb_1; 00048 unsigned char imcb_b_access_mode; 00049 unsigned char imcb_b_act_code; 00050 unsigned short int imcb_w_chan; 00051 union { 00052 unsigned int imcb_l_flags; 00053 struct { 00054 unsigned imcb_v_expreg : 1; 00055 unsigned imcb_v_shareable : 1; 00056 unsigned imcb_v_open_for_write : 1; 00057 unsigned imcb_v_res_header : 1; 00058 unsigned imcb_v_load_image : 1; 00059 unsigned imcb_v_initialize : 1; 00060 unsigned imcb_v_done : 1; 00061 unsigned imcb_v_sys_stb : 1; 00062 unsigned imcb_v_in_circularity : 1; 00063 unsigned imcb_v_mapped : 1; 00064 unsigned imcb_v_protected : 1; 00065 unsigned imcb_v_parent_prot : 1; 00066 unsigned imcb_v_cmod_vector_mapped: 1; 00067 unsigned imcb_v_xlated : 1; 00068 unsigned imcb_v_protsect : 1; 00069 unsigned imcb_v_notprotsect : 1; 00070 unsigned imcb_v_discontiguous : 1; 00071 unsigned imcb_v_forkable : 1; 00072 unsigned imcb_v_compress_datasec : 1; 00073 unsigned imcb_v_version_safe : 1; 00074 unsigned imcb_v_primary_fix : 1; 00075 unsigned imcb_v_data_resident : 1; 00076 unsigned imcb_v_share_link : 1; 00077 unsigned imcb_v_autoact : 1; 00078 unsigned imcb_v_mkthreads : 1; 00079 unsigned imcb_v_upcalls : 1; 00080 unsigned imcb_v_system_image : 1; 00081 unsigned imcb_v_fill_22_ : 5; 00082 }; 00083 }; 00084 char imcb_t_image_name [40]; 00085 unsigned int imcb_l_symbol_vector_size; 00086 union { 00087 unsigned long long imcb_q_ident; 00088 struct { 00089 union { 00090 unsigned int imcb_l_match_control; 00091 struct { 00092 unsigned imcb_v_match_control : 3; 00093 unsigned imcb_v_fill_23_ : 5; 00094 }; 00095 }; 00096 union { 00097 unsigned int imcb_l_version; 00098 struct { 00099 unsigned imcb_v_minor_id : 24; 00100 unsigned imcb_v_major_id : 8; 00101 }; 00102 }; 00103 }; 00104 }; 00105 union { 00106 unsigned long long imcb_q_address_range; 00107 struct { 00108 void *imcb_l_starting_address; 00109 void *imcb_l_end_address; 00110 }; 00111 }; 00112 struct _eihd *imcb_l_ihd; 00113 struct _kfe *imcb_l_kfe; 00114 void *imcb_l_context; 00115 void *imcb_l_base_address; 00116 void (*imcb_l_initialize)(); 00117 unsigned int imcb_l_active_sons; 00118 union { 00119 long long imcb_q_fixup_vector_address; 00120 struct { 00121 struct _eiaf *imcb_ps_fixup_vector_address; 00122 }; 00123 }; 00124 union { 00125 long long imcb_q_symbol_vector_address; 00126 struct { 00127 void *imcb_ps_symbol_vector_address; 00128 }; 00129 }; 00130 union { 00131 long long imcb_q_plv_address; 00132 struct { 00133 struct _plv *imcb_ps_plv_address; 00134 }; 00135 }; 00136 union { 00137 long long imcb_q_cmod_kernel_address; 00138 struct { 00139 void *imcb_ps_cmod_kernel_address; 00140 }; 00141 }; 00142 union { 00143 long long imcb_q_cmod_exec_address; 00144 struct { 00145 void *imcb_ps_cmod_exec_address; 00146 }; 00147 }; 00148 union { 00149 long long imcb_q_ssi_plv; 00150 struct { 00151 struct _plv *imcb_ps_ssi_plv; 00152 }; 00153 }; 00154 struct _kferes *imcb_l_kferes_ptr; 00155 char imcb_t_log_image_name [40]; 00156 char imcb_t_dvi [16]; 00157 unsigned short int imcb_w_fid [3]; 00158 char imcb_b_risig [32]; 00159 short int imcb_w_fill1; 00160 struct _kferes *imcb_l_kferes64_ptr; 00161 void *imcb_pq_starting_address_64; 00162 void *imcb_pq_end_address_64; 00163 unsigned long long imcb_q_linktime; 00164 }; 00165 00166 #endif 00167 00168