Share via


OAL_ADDRESS_TABLE (Compact 2013)

10/16/2014

This structure represents a table that is used by the kernel to establish the virtual to physical address mapping. In addition, the OALPAtoVA and OALVAtoPA functions use this table to retrieve the virtual address for a corresponding physical address, and vice versa.

Syntax

typedef struct {
  UINT32 CA;
  UINT32 PA;
  UINT32 size;
} OAL_ADDRESS_TABLE, *POAL_ADDRESS_TABLE;

Members

  • CA
    Cached virtual address.
  • PA
    Physical base address from which to map.
  • size
    Amount of memory to map, in megabytes.

Remarks

The OAL_ADDRESS_TABLE structure defines the mapping from the 4 GB physical address space to the kernel's 512 MB unmapped memory space. The kernel creates two ranges of virtual addresses from this table. The virtual address range 0x8000000 to 0x9FFFFFFF has caching and buffering enabled, but the virtual address range 0xA0000000 to 0xBFFFFFFF has the cache and buffering disabled. Each entry in the table consists of the cached virtual address represented by the CA member, the physical base address to map from, represented by the PA member, and the number of megabytes of memory to map.

The order of the entries in the table is arbitrary, but it is recommended that RAM be first for optimal performance. Because the table is zero-terminated, the last entry must be all zeroes.

Requirements

Header

oal_memory.h

Library

Developer Implemented

See Also

Reference

Memory Structures