Pointers
┌────────────┬────┬────────┬────┬────────────────────────────────────────┐│Field Name │Off │Length │Type│Description │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │avp_s │+0 │c │S │active vp │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │vp_frame │+0 │2.4 │D │frame, swp or ldr block # │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │vp_flags │ │1.4 │ │flags │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │vp_obpg │+4 │2 │W │object relative page number │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │vp_hob │+6 │2 │W │handle to object record │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │vp_refcount │+8 │2 │W │virtual page reference count │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │vp_semowner │+a │2 │W │Slot number of semaphore owner │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │fvp_s │+0 │a │S │Free vp │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │vp_flink │+0 │4 │D │forward link │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │vp_blink │+4 │4 │D │backward link │ ├────────────┼────┼────────┼────┼────────────────────────────────────────┤ │ │+8 │2 │W │pad │ └────────────┴────┴────────┴────┴────────────────────────────────────────┘
vp_flag flag definitions:
┌────────────────┬──────────┬──────────────────────────────┐ │name │bit mask │description │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_BUSY │0x001 │page semaphore taken │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_WANTED │0x002 │page semaphore requested │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_CACHE │0x004 │search page cache for pf │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_PFIDLE │0x008 │cross linked to idle pf │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_PF │0x010 │cross linked to pf │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_DF │0x020 │has swap file disk frame │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_DIRTY │0x040 │contents written to - from pte│ ├────────────────┼──────────┼──────────────────────────────┤ │VP_SHDIRTY │0x080 │shadow dirty bit (for VDMs) │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_SOW │0x100 │change to swappable on write │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_PRIVATIZED │0x200 │vp privatized │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_RESIDENT │0x400 │cannot be moved - value from │ │ │ │pte │ ├────────────────┼──────────┼──────────────────────────────┤ │VP_DISCARDABLE │0x800 │1 = discardable, 0 = swappable│ └────────────────┴──────────┴──────────────────────────────┘