Pointers
┌───────────┬──────┬──────┬────┬────────────────────────────────────────┐│Field Name │Offset│Length│Type│Description │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │vmal │+0 │8 │S │VM alias record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │al_har │+0 │2 │W │handle to alias' arena record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │al_hobptda │+2 │2 │W │context the alias is created from │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │al_pgoff │+4 │2.4 │D │page offset of the alias from start of │ │ │ │ │ │object │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │al_f │ │1.4 │ │flags indicating type of alias │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │vmsal │+0 │8 │S │SEL alias record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │sal_har │+0 │2 │W │handle to alias' arena record │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │sal_selcode│+2 │2 │W │code selector if cs alias │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │al_hobptda │+2 │2 │W │context the alias is created from if │ │ │ │ │ │MEMMAP alias │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │sal_cref │+4 │1.2 │D │reference count │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │sal_f │ │0.6 │ │flags │ ├───────────┼──────┼──────┼────┼────────────────────────────────────────┤ │sal_seldata│+6 │2 │W │data selector if cs alias (unused for │ │ │ │ │ │MEMMAP) │ └───────────┴──────┴──────┴────┴────────────────────────────────────────┘
al_f flag definitions:
┌────────────┬────────┬────────────────────────────┐ │Name │Bit Mask│Description │ ├────────────┼────────┼────────────────────────────┤ │AL_ISBUSY │0x1 │Set if record is busy │ ├────────────┼────────┼────────────────────────────┤ │AL_CSALIAS │0x2 │Set if cs alias record │ ├────────────┼────────┼────────────────────────────┤ │AL_MEMMAP │0x4 │Set if MemMapAlias record │ ├────────────┼────────┼────────────────────────────┤ │AL_DBGALIAS │0x8 │Set if debug alias │ ├────────────┼────────┼────────────────────────────┤ │AL_CSDSVALID│0x10 │Set if ds selector valid │ ├────────────┼────────┼────────────────────────────┤ │AL_DEVHLP │0x20 │Set if Devhlp alias │ ├────────────┼────────┼────────────────────────────┤ │AL_PRIV │0x40 │Set if privatized alias │ ├────────────┼────────┼────────────────────────────┤ │AL_VDM │0x80 │Set if VDM alias │ ├────────────┼────────┼────────────────────────────┤ │AL_NOALIAS │0x100 │Set if UVIRT mapping in VDMs│ └────────────┴────────┴────────────────────────────┘
sal_f flag definitions:
┌─────────────────┬──────────┬───────────────────────────────────────┐ │Name │Bit Mask │Description │ ├─────────────────┼──────────┼───────────────────────────────────────┤ │SAL_CSALIAS │AL_CSALIAS│ │ ├─────────────────┼──────────┼───────────────────────────────────────┤ │SAL_MEMMAPALIAS │AL_MEMMAP │ │ ├─────────────────┼──────────┼───────────────────────────────────────┤ │SAL_CSDSVALID │0x10 │mustn't coincide with other alias types│ ├─────────────────┼──────────┼───────────────────────────────────────┤ │SAL_ALIASREFSHIFT│0x6 │Low six bits reserved for flags │ ├─────────────────┼──────────┼───────────────────────────────────────┤ │SAL_ALIASREFMASK │0x0ffc0 │reference count bits mask │ └─────────────────┴──────────┴───────────────────────────────────────┘