Phoenix
Object-oriented orthogonally persistent operating system
|
Helper class to extract components (LAT tables entries indices and offset in a page) from a virtual address. More...
#include <md_vm.h>
Public Member Functions | |
VaddrDecoder (vaddr_t va=0) | |
Construct decoder object from virtual address. | |
LatEntryIdx | GetEntryIndex (u32 tableLvl) |
Get entry index in a specifiedLatEntrytable of the given virtual address. | |
vaddr_t | GetPageOffset () |
Get offset in a page for a given virtual address. | |
Static Public Member Functions | |
static u32 | GetTableSize (u32 UNUSED tableLvl) |
Get size of specifiedLatEntrytable. |
Helper class to extract components (LAT tables entries indices and offset in a page) from a virtual address.
Defines the layout of LAT tables hierarchy and virtual address fields layout.
vm::VaddrDecoder::VaddrDecoder | ( | vaddr_t | va = 0 | ) | [inline] |
Construct decoder object from virtual address.
LatEntryIdx vm::VaddrDecoder::GetEntryIndex | ( | u32 | tableLvl | ) | [inline] |
Get entry index in a specifiedLatEntrytable of the given virtual address.
tableLvl | LAT table level. |
vaddr_t vm::VaddrDecoder::GetPageOffset | ( | ) | [inline] |
Get offset in a page for a given virtual address.
Get size of specifiedLatEntrytable.
tableLvl | Null-based table level starting from least significant (e.g. page table, page directory, ...). |