For PGDATA formats for other versions of OS/2 see:
Pointers
For private data, a PGDATA structure is imbedded in each process' PTDA at (ptda_pgdata +0x80).
For the Global Shared Region the PGDATA structure is located at public symbol _pgShrData.
For the System Arena the PGDATA structure is located at public symbol _pgData.
The tables of PTE counts pointed to by pd_pcalloc, pd_pcpresent and pd_pcresident are located as follows:
System arena:
PGDATA Per Arena Page Table Data.
┌────────────────┬────┬────────┬────┬────────────────────────────────────────┐│Field Name │Off │Length │Type│Description │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_ppte │+0 │4 │D │pointer to ptes │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_ppde │+4 │4 │D │pointer to pdes │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_pcalloc │+8 │4 │D │pointer to (word) counts of allocated │ │ │ │ │ │ptes per pde │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_pcpresent │+c │4 │D │pointer to (word) counts of present ptes│ │ │ │ │ │per pde │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_pcresident │+10 │4 │D │pointer to (word) counts of │ │ │ │ │ │locked/resident ptes │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_base │+14 │4 │D │base virtual page number │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_pvdmalias │+18 │4 │D │base of vdm alias region │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_maxpde │+1c │2 │W │max potential pdes for this arena │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_cpdelow │+1e │2 │W │count of low in-use pdes │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_cpdehigh │+20 │2 │W │count of high in-use pdes │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_ptcontext │+22 │2 │W │page table context │ ├────────────────┼────┼────────┼────┼────────────────────────────────────────┤ │pd_flags │+24 │2 │W │per-process page manager flags │ └────────────────┴────┴────────┴────┴────────────────────────────────────────┘
pd_flags flag definitions:
┌──────────────┬────────┬──────────────────────────────┐ │Name │Bit Mask│Description │ ├──────────────┼────────┼──────────────────────────────┤ │PD_AGINGNEEDED│1 │process not aged in this sweep│ ├──────────────┼────────┼──────────────────────────────┤ │PD_FREE │2 │ │ └──────────────┴────────┴──────────────────────────────┘