00001 #ifndef vcbdef_h 00002 #define vcbdef_h 00003 00004 #define VCB_K_MRKLEN 11 00005 #define VCB_C_MRKLEN 11 00006 #define VCB_M_WRITE_IF 0x1 00007 #define VCB_M_WRITE_SM 0x2 00008 #define VCB_M_HOMBLKBAD 0x4 00009 #define VCB_M_IDXHDRBAD 0x8 00010 #define VCB_M_NOALLOC 0x10 00011 #define VCB_M_EXTFID 0x20 00012 #define VCB_M_GROUP 0x40 00013 #define VCB_M_SYSTEM 0x80 00014 #define VCB_M_HIGH_SIERRA 0x1 00015 #define VCB_M_NOSWITCH 0x2 00016 #define VCB_M_DSI 0x4 00017 #define VCB_M_XAR 0x8 00018 #define VCB_M_UNUSED_1 0x10 00019 #define VCB_M_UNUSED_2 0x20 00020 #define VCB_M_PARTFILE 0x1 00021 #define VCB_M_LOGICEOVS 0x2 00022 #define VCB_M_WAIMOUVOL 0x4 00023 #define VCB_M_WAIREWIND 0x8 00024 #define VCB_M_WAIUSRLBL 0x10 00025 #define VCB_M_CANCELIO 0x20 00026 #define VCB_M_MUSTCLOSE 0x40 00027 #define VCB_M_NOWRITE 0x80 00028 #define VCB_M_SHADMAST 0x1 00029 #define VCB_M_FAILED 0x2 00030 #define VCB_M_REBLDNG 0x8 00031 #define VCB_M_BLKASTREC 0x10 00032 #define VCB_M_MVBEGUN 0x20 00033 #define VCB_M_ADDING 0x40 00034 #define VCB_M_PACKACKED 0x80 00035 #define VCB_K_COMLEN 40 00036 #define VCB_C_COMLEN 40 00037 #define VCB_S_VCBDEF_COMMON 40 00038 #define VCB_M_SUBSYSTEM 0x1 00039 #define VCB_M_STRUC_ODS5 0x2 00040 #define VCB_K_LENGTH 304 00041 #define VCB_C_LENGTH 304 00042 #define VCB_S_VCBDEF_DISKS 304 00043 #define VCB_M_FILE_ATTRIBUTES 0xF 00044 #define VCB_M_FILE_CONTENTS 0xF0 00045 #define VCB_C_DEFAULT 0 00046 #define VCB_C_WRITETHROUGH 1 00047 #define VCB_C_WRITEBEHIND 2 00048 #define VCB_M_FLUSH_ON_CLOSE 0xF00 00049 #define VCB_C_FLUSH 1 00050 #define VCB_C_NOFLUSH 2 00051 #define VCB_M_CACHING_OPTIONS_MBZ 0xFFFFF000 00052 #define VCB_K_F64_LEN 304 00053 #define VCB_C_F64_LEN 304 00054 #define VCB_S_VCBDEF_F64 304 00055 #define VCB_K_SHAD_LEN 76 00056 #define VCB_S_VCBDEF_SHADOW 76 00057 #define VCB_S_VCBDEF_CDROM 128 00058 #define VCB_S_VCBDEF2 184 00059 #define VCB_S_VCBDEF3 32 00060 00061 struct _vcb { 00062 union { 00063 struct _fcb *vcb_l_fcbfl; 00064 void *vcb_l_blockfl; 00065 struct _ucb *vcb_l_memqfl; 00066 }; 00067 union { 00068 struct _fcb *vcb_l_fcbbl; 00069 void *vcb_l_blockbl; 00070 struct _ucb *vcb_l_memqbl; 00071 }; 00072 unsigned short int vcb_w_size; 00073 unsigned char vcb_b_type; 00074 union { 00075 struct { 00076 union { 00077 unsigned char vcb_b_status; 00078 struct { 00079 unsigned vcb_v_write_if : 1; 00080 unsigned vcb_v_write_sm : 1; 00081 unsigned vcb_v_homblkbad : 1; 00082 unsigned vcb_v_idxhdrbad : 1; 00083 unsigned vcb_v_noalloc : 1; 00084 unsigned vcb_v_extfid : 1; 00085 unsigned vcb_v_group : 1; 00086 unsigned vcb_v_system : 1; 00087 }; 00088 struct { 00089 unsigned vcb_v_high_sierra : 1; 00090 unsigned vcb_v_noswitch : 1; 00091 unsigned vcb_v_dsi : 1; 00092 unsigned vcb_v_xar : 1; 00093 unsigned vcb_v_unused_1 : 1; 00094 unsigned vcb_v_unused_2 : 1; 00095 unsigned vcb_v_fill_2_ : 2; 00096 }; 00097 struct { 00098 unsigned vcb_v_partfile : 1; 00099 unsigned vcb_v_logiceovs : 1; 00100 unsigned vcb_v_waimouvol : 1; 00101 unsigned vcb_v_wairewind : 1; 00102 unsigned vcb_v_waiusrlbl : 1; 00103 unsigned vcb_v_cancelio : 1; 00104 unsigned vcb_v_mustclose : 1; 00105 unsigned vcb_v_nowrite : 1; 00106 }; 00107 struct { 00108 unsigned vcb_v_shadmast : 1; 00109 unsigned vcb_v_failed : 1; 00110 unsigned vcb_v_unused_bit : 1; 00111 unsigned vcb_v_rebldng : 1; 00112 unsigned vcb_v_blkastrec : 1; 00113 unsigned vcb_v_mvbegun : 1; 00114 unsigned vcb_v_adding : 1; 00115 unsigned vcb_v_packacked : 1; 00116 }; 00117 }; 00118 unsigned int vcb_l_trans; 00119 unsigned int vcb_l_rvn; 00120 struct _aqb *vcb_l_aqb; 00121 char vcb_t_volname [12]; 00122 void *vcb_l_rvt; 00123 union { 00124 struct { 00125 unsigned int vcb_l_homelbn; 00126 unsigned int vcb_l_home2lbn; 00127 unsigned int vcb_l_ixhdr2lbn; 00128 unsigned int vcb_l_ibmaplbn; 00129 unsigned int vcb_l_sbmaplbn; 00130 unsigned int vcb_l_ibmapsize; 00131 unsigned int vcb_l_ibmapvbn; 00132 unsigned int vcb_l_sbmapsize; 00133 unsigned int vcb_l_sbmapvbn; 00134 unsigned int vcb_l_cluster; 00135 unsigned int vcb_l_extend; 00136 unsigned int vcb_l_free; 00137 unsigned int vcb_l_maxfiles; 00138 unsigned int vcb_l_window; 00139 unsigned int vcb_l_lru_lim; 00140 unsigned int vcb_l_fileprot; 00141 unsigned int vcb_l_mcount; 00142 unsigned int vcb_l_eofdelta; 00143 unsigned int vcb_l_resfiles; 00144 unsigned int vcb_l_recordsz; 00145 unsigned int vcb_l_blockfact; 00146 union { 00147 unsigned char vcb_b_status2; 00148 struct { 00149 unsigned vcb_v_writethru : 1; 00150 unsigned vcb_v_nocache : 1; 00151 unsigned vcb_v_mountver : 1; 00152 unsigned vcb_v_erase : 1; 00153 unsigned vcb_v_nohighwater : 1; 00154 unsigned vcb_v_noshare : 1; 00155 unsigned vcb_v_cluslock : 1; 00156 unsigned vcb_v_subset0 : 1; 00157 }; 00158 char vcb_b_fill_6 [4]; 00159 }; 00160 struct _fcb *vcb_l_quotafcb; 00161 void *vcb_l_cache; 00162 void *vcb_l_quocache; 00163 unsigned int vcb_l_quosize; 00164 unsigned int vcb_l_penderr; 00165 unsigned int vcb_l_serialnum; 00166 union { 00167 unsigned int vcb_l_status3; 00168 struct { 00169 unsigned vcb_v_subsystem : 1; 00170 unsigned vcb_v_struc_ods5 : 1; 00171 unsigned vcb_v_fill_3_ : 6; 00172 }; 00173 }; 00174 unsigned int vcb_l_vollkid; 00175 char vcb_t_volcknam [12]; 00176 unsigned int vcb_l_blockid; 00177 unsigned long long vcb_q_retainmin; 00178 unsigned long long vcb_q_retainmax; 00179 unsigned long long vcb_q_mounttime; 00180 struct _vcb *vcb_l_memhdfl; 00181 struct _vcb *vcb_l_memhdbl; 00182 char vcb_b_fill_7 [3]; 00183 unsigned char vcb_b_shad_sts; 00184 unsigned int vcb_l_activity; 00185 unsigned int vcb_l_spl_cnt; 00186 unsigned int vcb_l_shad_lkid; 00187 unsigned char vcb_b_acb [36]; 00188 struct { 00189 union { 00190 char vcb_b_fill_2 [20]; 00191 struct _orb *vcb_l_orb; 00192 }; 00193 struct { 00194 char vcb_b_fill_3 [20]; 00195 }; 00196 }; 00197 union { 00198 unsigned int vcb_l_caching_options; 00199 struct { 00200 unsigned vcb_v_file_attributes : 4; 00201 unsigned vcb_v_file_contents : 4; 00202 unsigned vcb_v_flush_on_close : 4; 00203 unsigned vcb_v_caching_options_mbz : 20; 00204 }; 00205 }; 00206 } vcb_1_2_1_1; 00207 struct { 00208 struct _ucb *vcb_l_mem_ucb; 00209 struct _ucb *vcb_l_mast_ucb; 00210 struct _vcb *vcb_l_mast_vcb; 00211 unsigned short int vcb_w_copy_type; 00212 unsigned short int vcb_w_cpyseqnum; 00213 int vcb_l_fill_1; 00214 unsigned long long vcb_q_work; 00215 unsigned long long vcb_q_shdm_resv; 00216 }; 00217 struct { 00218 unsigned int vcb_l_voldesc; 00219 struct _vcb *vcb_l_orphaned_vcb; 00220 void *vcb_l_ptvector; 00221 void *vcb_l_lbncache; 00222 unsigned int vcb_l_ptindex; 00223 unsigned int vcb_l_lbsize; 00224 unsigned int vcb_l_mxdirnm; 00225 unsigned int vcb_l_lbblocks; 00226 unsigned int vcb_l_minread; 00227 unsigned int vcb_l_rdbytes; 00228 unsigned int vcb_l_lastgrp; 00229 unsigned int vcb_l_cd_free; 00230 unsigned int vcb_l_cd_maxfiles; 00231 unsigned int vcb_l_cd_window; 00232 unsigned int vcb_l_cd_lru_lim; 00233 unsigned int vcb_l_ptrvn; 00234 unsigned int vcb_l_cd_mcount; 00235 unsigned int vcb_l_fat_rfm; 00236 unsigned int vcb_l_fat_rat; 00237 unsigned int vcb_l_fat_mrs; 00238 unsigned int vcb_l_sectors; 00239 union { 00240 unsigned char vcb_b_cd_status2; 00241 char vcb_b_fill_8 [4]; 00242 }; 00243 }; 00244 struct { 00245 union { 00246 unsigned int vcb_l_cur_fid; 00247 struct { 00248 unsigned short int vcb_w_cur_num; 00249 unsigned short int vcb_w_cur_seq; 00250 }; 00251 }; 00252 union { 00253 unsigned int vcb_l_start_fid; 00254 struct { 00255 unsigned short int vcb_w_start_num; 00256 unsigned short int vcb_w_start_seq; 00257 }; 00258 }; 00259 union { 00260 unsigned short int vcb_w_mode; 00261 struct { 00262 unsigned vcb_v_ovrexp : 1; 00263 unsigned vcb_v_ovracc : 1; 00264 unsigned vcb_v_ovrlbl : 1; 00265 unsigned vcb_v_ovrsetid : 1; 00266 unsigned vcb_v_intchg : 1; 00267 unsigned vcb_v_ebcdic : 1; 00268 unsigned vcb_v_novol2 : 1; 00269 unsigned vcb_v_nohdr3 : 1; 00270 unsigned vcb_v_starfile : 1; 00271 unsigned vcb_v_enusereot : 1; 00272 unsigned vcb_v_blank : 1; 00273 unsigned vcb_v_init : 1; 00274 unsigned vcb_v_noauto : 1; 00275 unsigned vcb_v_ovrvolo : 1; 00276 unsigned vcb_v_fil_access : 1; 00277 unsigned vcb_v_fill_4_ : 1; 00278 }; 00279 }; 00280 unsigned char vcb_b_tm; 00281 unsigned char vcb_b_cur_rvn; 00282 unsigned int vcb_l_st_record; 00283 struct _mvl *vcb_l_mvl; 00284 struct _wcb *vcb_l_wcb; 00285 void *vcb_l_vpfl; 00286 void *vcb_l_vpbl; 00287 struct _acb *vcb_l_usrlblast; 00288 unsigned char vcb_b_lblcnt; 00289 char vcb_t_fill_5 [99]; 00290 unsigned long long vcb_q_exp_date; 00291 }; 00292 } vcb_1_2_1; 00293 } vcb_1_2; 00294 struct { 00295 unsigned char vcb_b_qnamecnt; 00296 char vcb_t_qname [20]; 00297 } vcb_1_1; 00298 } vcb_0; 00299 }; 00300 00301 #define vcb_b_status vcb_0.vcb_1_2.vcb$b_status 00302 #define vcb_l_trans vcb_0.vcb_1_2.vcb$l_trans 00303 #define vcb_l_aqb vcb_0.vcb_1_2.vcb$l_aqb 00304 #define vcb_l_rvn vcb_0.vcb_1_2.vcb$l_rvn 00305 #define vcb_t_volname vcb_0.vcb_1_2.vcb$t_volname 00306 #define vcb_l_rvt vcb_0.vcb_1_2.vcb$l_rvt 00307 #define vcb_l_cache vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_cache 00308 #define vcb_l_quocache vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_quocache 00309 #define vcb_l_cluster vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_cluster 00310 #define vcb_l_fileprot vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_fileprot 00311 #define vcb_l_free vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_free 00312 #define vcb_l_home2lbn vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_home2lbn 00313 #define vcb_l_homelbn vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_homelbn 00314 #define vcb_l_ibmaplbn vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_ibmaplbn 00315 #define vcb_l_ibmapsize vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_ibmapsize 00316 #define vcb_l_ibmapvbn vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_ibmapvbn 00317 #define vcb_l_ixhdr2lbn vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_ixhdr2lbn 00318 #define vcb_l_maxfiles vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_maxfiles 00319 #define vcb_l_sbmaplbn vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_sbmaplbn 00320 #define vcb_l_sbmapsize vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_sbmapsize 00321 #define vcb_l_sbmapvbn vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$l_sbmapvbn 00322 #define vcb_t_volcknam vcb_0.vcb_1_2.vcb_1_2_1.vcb_1_2_1_1.vcb$t_volcknam 00323 00324 #endif 00325