|
AquilaOS documentation
How it works, and its code
|
Go to the source code of this file.
Macros | |
| #define | NR_PAGE_SIZE 2 |
| #define | ARCH_DMAP_BASE (0xFFFF800000000000ULL) |
| #define | ARCH_VESA_BASE (0xFFFFC00000000000ULL) |
| #define | ARCH_EARLYFB_BASE (0xFFFFC00100000000ULL) |
| #define | ARCH_ACPI_BASE (0xFFFFC00200000000ULL) |
| #define | ARCH_MMIO_BASE (0xFFFFC00300000000ULL) |
| #define | ARCH_MMIO_SIZE (64ULL << 30) |
| #define | ARCH_KVMEM_BASE (0xFFFFD00000000000ULL) |
| #define | ARCH_KVMEM_SIZE (1ULL << 30) |
| #define | ARCH_SLAB_BASE (0xFFFFE00000000000ULL) |
| #define | ARCH_SLAB_SIZE (16ULL << 30) |
| #define | ARCH_BOOT_MAPPED (1024UL * 1024 * 1024) |
| #define | PHYS2VIRT(paddr) |
| #define | __VMA_ADD(obj, op) |
| #define | __VMA_TYPED(obj, op) |
| #define | VMA(obj) |
| #define | LMA(obj) |
Functions | |
| static void | tlb_flush (void) |
| int | arch_mm_page_fault (vaddr_t vaddr, int err) |
| Handles a page fault: turns the CPU's error code into the kernel's PF_* flags, and calls mm_page_fault() (mm/i386.c, mm/x86_64.c). | |
Variables | |
| char | _VMA |
| #define __VMA_ADD | ( | obj, | |
| op ) |
| #define __VMA_TYPED | ( | obj, | |
| op ) |
| #define LMA | ( | obj | ) |
| #define PHYS2VIRT | ( | paddr | ) |
| #define VMA | ( | obj | ) |
| int arch_mm_page_fault | ( | vaddr_t | vaddr, |
| int | err ) |
Handles a page fault: turns the CPU's error code into the kernel's PF_* flags, and calls mm_page_fault() (mm/i386.c, mm/x86_64.c).
| vaddr | the address that faulted (CR2) |
| err | the CPU's error code |
Definition at line 449 of file i386.c.
References arch_mm_page_fault(), mm_page_fault(), PF_EXEC, PF_PRESENT, PF_READ, PF_USER, and PF_WRITE.
Referenced by arch_mm_page_fault(), and isr_dispatch().
|
inlinestatic |
Definition at line 76 of file mm.h.
References read_cr3(), and tlb_flush().
|
extern |