#include "threads/vaddr.h"

Go to the source code of this file.
Macros | |
| #define | PML4SHIFT 39UL |
| #define | PDPESHIFT 30UL |
| #define | PDXSHIFT 21UL |
| #define | PTXSHIFT 12UL |
| #define | PML4(la) ((((uint64_t) (la)) >> PML4SHIFT) & 0x1FF) |
| #define | PDPE(la) ((((uint64_t) (la)) >> PDPESHIFT) & 0x1FF) |
| #define | PDX(la) ((((uint64_t) (la)) >> PDXSHIFT) & 0x1FF) |
| #define | PTX(la) ((((uint64_t) (la)) >> PTXSHIFT) & 0x1FF) |
| #define | PTE_ADDR(pte) ((uint64_t) (pte) & ~0xFFF) |
| #define | PTE_FLAGS 0x00000000000000fffUL /* Flag bits. */ |
| #define | PTE_ADDR_MASK 0xffffffffffffff000UL /* Address bits. */ |
| #define | PTE_AVL 0x00000e00 /* Bits available for OS use. */ |
| #define | PTE_P 0x1 /* 1=present, 0=not present. */ |
| #define | PTE_W 0x2 /* 1=read/write, 0=read-only. */ |
| #define | PTE_U 0x4 /* 1=user/kernel, 0=kernel only. */ |
| #define | PTE_A 0x20 /* 1=accessed, 0=not acccessed. */ |
| #define | PTE_D 0x40 /* 1=dirty, 0=not dirty (PTEs only). */ |
| #define PDPESHIFT 30UL |
| #define PDXSHIFT 21UL |
| #define PML4SHIFT 39UL |
| #define PTE_A 0x20 /* 1=accessed, 0=not acccessed. */ |
| #define PTE_ADDR | ( | pte | ) | ((uint64_t) (pte) & ~0xFFF) |
| #define PTE_ADDR_MASK 0xffffffffffffff000UL /* Address bits. */ |
| #define PTE_AVL 0x00000e00 /* Bits available for OS use. */ |
| #define PTE_D 0x40 /* 1=dirty, 0=not dirty (PTEs only). */ |
| #define PTE_FLAGS 0x00000000000000fffUL /* Flag bits. */ |
| #define PTE_P 0x1 /* 1=present, 0=not present. */ |
| #define PTE_U 0x4 /* 1=user/kernel, 0=kernel only. */ |
| #define PTXSHIFT 12UL |