00001 #ifndef phddef_h 00002 #define phddef_h 00003 00004 #define PHD_M_ASTEN 0xF 00005 #define PHD_M_ASTSR 0xF0 00006 #define PHD_M_ASTEN_KEN 0x1 00007 #define PHD_M_ASTEN_EEN 0x2 00008 #define PHD_M_ASTEN_SEN 0x4 00009 #define PHD_M_ASTEN_UEN 0x8 00010 #define PHD_M_ASTSR_KPD 0x10 00011 #define PHD_M_ASTSR_EPD 0x20 00012 #define PHD_M_ASTSR_SPD 0x40 00013 #define PHD_M_ASTSR_UPD 0x80 00014 #define PHD_M_FEN 0x1 00015 #define PHD_M_PME 0x4000000000000000 00016 #define PHD_M_DATFX 0x8000000000000000 00017 #define PHD_C_HWPCBLEN 128 00018 #define PHD_K_HWPCBLEN 128 00019 #define PHD_C_FPR_COUNT 32 00020 #define PHD_K_FPR_COUNT 32 00021 #define PHD_M_SW_FEN 0x1 00022 #define PHD_M_AST_PENDING 0x80000000 00023 #define PHD_M_PFMFLG 0x1 00024 #define PHD_M_DALCSTX 0x2 00025 #define PHD_M_WSPEAKCHK 0x4 00026 #define PHD_M_NOACCVIO 0x8 00027 #define PHD_M_IWSPEAKCK 0x10 00028 #define PHD_M_IMGDMP 0x20 00029 #define PHD_M_NO_WS_CHNG 0x40 00030 #define PHD_M_SPARE_8 0x80 00031 #define PHD_M_LOCK_HEADER 0x100 00032 #define PHD_M_FREWSLE_ACTIVE 0x200 00033 #define PHD_K_LENGTH 1008 00034 #define PHD_C_LENGTH 1008 00035 00036 struct _phd { 00037 unsigned long long phd_q_privmsk; 00038 unsigned short int phd_w_size; 00039 unsigned char phd_b_type; 00040 char phd_$_spare_1; 00041 #ifdef __i386__ 00042 #define PHD_INT_SIZE 4 00043 unsigned int phd_l_wslist; 00044 unsigned int phd_l_wslock; 00045 unsigned int phd_l_wsdyn; 00046 unsigned int phd_l_wsnext; 00047 unsigned int phd_l_wslast; 00048 unsigned int phd_l_wsextent; 00049 unsigned int phd_l_wsquota; 00050 unsigned int phd_l_dfwscnt; 00051 unsigned int phd_l_cpulim; 00052 unsigned int phd_l_pst_base_offset; 00053 unsigned int phd_l_pst_last; 00054 unsigned int phd_l_pst_free; 00055 unsigned int phd_l_iorefc; 00056 unsigned long long phd_q_next_region_id; 00057 int phd_$_spare_2; 00058 unsigned int phd_l_emptpg; 00059 unsigned int phd_l_dfpfc; 00060 unsigned int phd_l_pgtbpfc; 00061 unsigned int phd_l_astlm; 00062 #else 00063 // these are relative offset, not use yet 00064 #define PHD_INT_SIZE 8 00065 unsigned long phd_l_wslist; 00066 unsigned long phd_l_wslock; 00067 unsigned long phd_l_wsdyn; 00068 unsigned long phd_l_wsnext; 00069 unsigned long phd_l_wslast; 00070 unsigned long phd_l_wsextent; 00071 unsigned long phd_l_wsquota; 00072 unsigned long phd_l_dfwscnt; 00073 unsigned long phd_l_cpulim; 00074 unsigned long phd_l_pst_base_offset; 00075 unsigned long phd_l_pst_last; 00076 unsigned long phd_l_pst_free; 00077 unsigned long phd_l_iorefc; 00078 unsigned long long phd_q_next_region_id; 00079 long phd_$_spare_2; 00080 unsigned long phd_l_emptpg; 00081 unsigned long phd_l_dfpfc; 00082 unsigned long phd_l_pgtbpfc; 00083 unsigned long phd_l_astlm; 00084 #endif 00085 union { 00086 int phd_l_pst_base_max; 00087 int phd_l_fredoff; 00088 int phd_l_im_semaphore; 00089 }; 00090 unsigned int phd_l_wssize; 00091 unsigned int phd_l_diocnt; 00092 unsigned int phd_l_biocnt; 00093 unsigned int phd_l_phvindex; 00094 long long phd_$_spare_18; 00095 union { 00096 unsigned long long phd_q_lefc; 00097 struct { 00098 unsigned int phd_l_lefc_0; 00099 unsigned int phd_l_lefc_1; 00100 }; 00101 }; 00102 union { 00103 unsigned long long phd_q_hwpcb; 00104 unsigned long long phd_q_ksp; 00105 }; 00106 unsigned long long phd_q_esp; 00107 unsigned long long phd_q_ssp; 00108 unsigned long long phd_q_usp; 00109 unsigned long long phd_q_ptbr; 00110 unsigned long long phd_q_asn; 00111 union { 00112 unsigned long long phd_q_astsr_asten; 00113 struct { 00114 unsigned phd_v_asten : 4; 00115 unsigned phd_v_astsr : 4; 00116 }; 00117 struct { 00118 unsigned phd_v_asten_ken : 1; 00119 unsigned phd_v_asten_een : 1; 00120 unsigned phd_v_asten_sen : 1; 00121 unsigned phd_v_asten_uen : 1; 00122 unsigned phd_v_astsr_kpd : 1; 00123 unsigned phd_v_astsr_epd : 1; 00124 unsigned phd_v_astsr_spd : 1; 00125 unsigned phd_v_astsr_upd : 1; 00126 }; 00127 }; 00128 union { 00129 unsigned long long phd_q_fen_datfx; 00130 struct { 00131 unsigned phd_v_fen : 1; 00132 unsigned phd_v_fill_61_1 : 32; 00133 unsigned phd_v_fill_61_2 : 29; 00134 unsigned phd_v_pme : 1; 00135 unsigned phd_v_datfx : 1; 00136 }; 00137 }; 00138 unsigned long long phd_q_cc; 00139 unsigned long long phd_q_unq; 00140 long long phd_q_pal_rsvd [6]; 00141 union { 00142 long long phd_q_fpr [32]; 00143 struct { 00144 unsigned long long phd_q_f0; 00145 unsigned long long phd_q_f1; 00146 unsigned long long phd_q_f2; 00147 unsigned long long phd_q_f3; 00148 unsigned long long phd_q_f4; 00149 unsigned long long phd_q_f5; 00150 unsigned long long phd_q_f6; 00151 unsigned long long phd_q_f7; 00152 unsigned long long phd_q_f8; 00153 unsigned long long phd_q_f9; 00154 unsigned long long phd_q_f10; 00155 unsigned long long phd_q_f11; 00156 unsigned long long phd_q_f12; 00157 unsigned long long phd_q_f13; 00158 unsigned long long phd_q_f14; 00159 unsigned long long phd_q_f15; 00160 unsigned long long phd_q_f16; 00161 unsigned long long phd_q_f17; 00162 unsigned long long phd_q_f18; 00163 unsigned long long phd_q_f19; 00164 unsigned long long phd_q_f20; 00165 unsigned long long phd_q_f21; 00166 unsigned long long phd_q_f22; 00167 unsigned long long phd_q_f23; 00168 unsigned long long phd_q_f24; 00169 unsigned long long phd_q_f25; 00170 unsigned long long phd_q_f26; 00171 unsigned long long phd_q_f27; 00172 unsigned long long phd_q_f28; 00173 unsigned long long phd_q_f29; 00174 unsigned long long phd_q_f30; 00175 unsigned long long phd_q_fpcr; 00176 }; 00177 }; 00178 union { 00179 unsigned int phd_l_flags2; 00180 struct { 00181 unsigned phd_v_sw_fen : 1; 00182 unsigned phd_v_fill_flags2 : 30; 00183 unsigned phd_v_ast_pending : 1; 00184 }; 00185 }; 00186 unsigned int phd_l_extracpu; 00187 unsigned long long phd_q_asnseq; 00188 unsigned int phd_l_extdynws; 00189 unsigned int phd_l_pageflts; 00190 unsigned int phd_l_fow_flts; 00191 unsigned int phd_l_for_flts; 00192 unsigned int phd_l_foe_flts; 00193 unsigned int phd_l_cputim; 00194 unsigned int phd_l_cpumode; 00195 unsigned int phd_l_awsmode; 00196 unsigned int phd_$_spare_16; 00197 unsigned int phd_$_spare_17; 00198 unsigned int phd_l_ptcntlck; 00199 unsigned int phd_l_ptcntval; 00200 unsigned int phd_l_ptcntact; 00201 unsigned int phd_l_ptcntmax; 00202 unsigned int phd_$_spare_12; 00203 unsigned int phd_$_spare_14; 00204 unsigned char phd_$_spare_15 [4]; 00205 int phd_$_spare_3; 00206 int phd_$_spare_4; 00207 int phd_l_wsfluid; 00208 unsigned int phd_l_wsauth; 00209 unsigned int phd_l_wsauthext; 00210 void *phd_l_reslsth; 00211 unsigned int phd_l_authpri; 00212 unsigned long long phd_q_authpriv; 00213 unsigned long long phd_q_imagpriv; 00214 unsigned int phd_l_imgcnt; 00215 unsigned int phd_l_pfltrate; 00216 unsigned int phd_l_pflref; 00217 unsigned int phd_l_timref; 00218 unsigned int phd_l_pgfltio; 00219 struct { 00220 unsigned char phd_$$_fill_3 [20]; 00221 }; 00222 struct { 00223 unsigned char phd_$$_fill_4 [20]; 00224 }; 00225 unsigned int phd_$_spare_11 [4]; 00226 int phd_$_spare_10; 00227 union { 00228 long long phd_q_pagefile_refs; 00229 struct { 00230 int phd_l_pagefile_refs_lo; 00231 int phd_l_pagefile_refs_hi; 00232 }; 00233 }; 00234 int phd_$_spare_13; 00235 unsigned int phd_$_spare_9; 00236 00237 union { 00238 unsigned int phd_l_flags; 00239 struct { 00240 unsigned phd_v_pfmflg : 1; 00241 unsigned phd_v_dalcstx : 1; 00242 unsigned phd_v_wspeakchk : 1; 00243 unsigned phd_v_noaccvio : 1; 00244 unsigned phd_v_iwspeakck : 1; 00245 unsigned phd_v_imgdmp : 1; 00246 unsigned phd_v_no_ws_chng : 1; 00247 unsigned phd_$_spare_8 : 1; 00248 unsigned phd_v_lock_header : 1; 00249 unsigned phd_v_frewsle_active : 1; 00250 unsigned phd_v_fill_0_ : 6; 00251 }; 00252 }; 00253 unsigned int phd_l_pscanctx_seqnum; 00254 unsigned long long phd_q_pscanctx_queue; 00255 int phd_l_l2pt_wslx; 00256 int phd_l_l3pt_wslx; 00257 int phd_l_l3pt_count; 00258 int phd_l_l2pt_count; 00259 int phd_l_bufobj_wslx; 00260 int phd_$_spare_5; 00261 int phd_$_spare_6; 00262 int phd_$_spare_7; 00263 void *phd_pq_pt_no_delete1; 00264 void *phd_pq_pt_no_delete2; 00265 unsigned long long phd_q_free_pte_count; 00266 union { 00267 long long phd_q_p0_rde; 00268 struct { 00269 struct _rde *phd_ps_p0_va_list_flink; 00270 struct _rde *phd_ps_p0_va_list_blink; 00271 }; 00272 }; 00273 unsigned int phd_$$_p0_rde_fields [2]; 00274 unsigned int phd_l_p0_flags; 00275 unsigned int phd_l_p0_region_prot; 00276 unsigned long long phd_q_p0_region_id; 00277 void *phd_pq_p0_start_va; 00278 unsigned long long phd_q_p0_region_size; 00279 union { 00280 void *phd_pq_p0_first_free_va; 00281 int phd_l_frep0va; 00282 }; 00283 union { 00284 long long phd_q_p1_rde; 00285 struct { 00286 struct _rde *phd_ps_p1_va_list_flink; 00287 struct _rde *phd_ps_p1_va_list_blink; 00288 }; 00289 }; 00290 unsigned int phd_$$_p1_rde_fields [2]; 00291 unsigned int phd_l_p1_flags; 00292 unsigned int phd_l_p1_region_prot; 00293 unsigned long long phd_q_p1_region_id; 00294 void *phd_pq_p1_start_va; 00295 unsigned long long phd_q_p1_region_size; 00296 union { 00297 void *phd_pq_p1_first_free_va; 00298 int phd_l_frep1va; 00299 }; 00300 union { 00301 long long phd_q_p2_rde; 00302 struct { 00303 struct _rde *phd_ps_p2_va_list_flink; 00304 struct _rde *phd_ps_p2_va_list_blink; 00305 }; 00306 }; 00307 unsigned int phd_$$_p2_rde_fields [2]; 00308 unsigned int phd_l_p2_flags; 00309 unsigned int phd_l_p2_region_prot; 00310 unsigned long long phd_q_p2_region_id; 00311 void *phd_pq_p2_start_va; 00312 unsigned long long phd_q_p2_region_size; 00313 void *phd_pq_p2_first_free_va; 00314 unsigned long long phd_q_image_authpriv; 00315 unsigned long long phd_q_image_permpriv; 00316 struct _rights *phd_ar_image_authrights; 00317 struct _rights *phd_ar_image_rights; 00318 struct _rights *phd_ar_subsystem_authrights; 00319 struct _rights *phd_ar_subsystem_rights; 00320 long long phd_q_bak_array; 00321 }; 00322 00323 #define PHD_S_PHDDEF 1016 00324 00325 #endif 00326 00327