Pointers
┌───────────┬──────┬──────┬────┬────────────────────────────────────────┐│Field Name │Offset│Length│Type│Description │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │vmar_reg │+0 │16 │S │Regular Arena Record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_xf │+0 │1.4 │D │Extra flags │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_cpg │ │2.4 │ │Size in pages │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_ipg │+4 │2.4 │D │Virtual page no. │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_f │ │1.4 │ │Flags │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_harnext │+8 │2 │W │Handle of next Arena Record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_harprev │+a │2 │W │Handle of previous Arena Record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_harlink │+c │2 │W │Handle of associated Arena Record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_harhash │+e │2 │W │Hash table link │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_hob │+10 │2 │W │Handle of Object Record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_hco │+12 │2 │W │Context record handle (shar+shr data) │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_hobptda │+12 │2 │W │PTDA handle or NULL (prvar or shar + │ │ │ │ │ │instance data) │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_sel │+12 │2 │W │Selector (sysarena only) │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_hal │+14 │2 │W │Alias record handle, * =0 means not an │ │ │ │ │ │alias │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │vmar_sen │+0 │16 │S │Sentinel Arena Record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_xf │+0 │1.4 │D │Extra flags │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_cpg │+1.4 │2.4 │ │Size in pages │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_ipg │+4 │2.4 │D │Virtual page no. │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_f │+6.4 │1.4 │ │Flags │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_harnext │+8 │2 │W │Handle of next Arena Record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_harprev │+a │2 │W │Handle of previous Arena Record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_harlink │+c │2 │W │Handle of associated Arena Record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_harhash │+e │2 │W │Hash table link │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_ipgmax │+10 │4 │D │Maximum lage no. in the arena │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │ar_unused │+14 │2 │W │reserved │ └───────────┴──────┴──────┴────┴────────────────────────────────────────┘
ar_f flag definitions:
┌─────────────┬────────┬────────────────────────────────────┐ │Name │Bit Mask│Description │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_INUSE │0x001 │Record not on free list │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_TAG │0x006 │Record type mask │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_TAGREG │0x000 │Regular record │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_TAGSEN │0x002 │Sentinel │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_TAGBSEN │0x006 │Boundary sentinel │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_SELMAP │0x008 │Memory mapped by selector │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_SELBASEALL│0x00c │Base selector map all │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_SELMASK │0x00c │Selector map mask │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_RELOAD │0x010 │Pre-reserved for huge item or │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_WRITE │0x020 │Write permission │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_USER │0x040 │User pages │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_EXEC │0x080 │Executable Pages │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_READ │0x100 │Read permission │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_HCO │0x200 │Record linked to Context List │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_GUARD │0x400 │Guard pages │ ├─────────────┼────────┼────────────────────────────────────┤ │AR_SGS │0x800 │Registered under Screen Group Switch│ └─────────────┴────────┴────────────────────────────────────┘
ar_xf flag definitions:
┌───────┬────────┬───────────────────────────┐ │Name │Bit Mask│Description │ ├───────┼────────┼───────────────────────────┤ │AR_HCOH│0x001 │context record handle > 64k│ └───────┴────────┴───────────────────────────┘