MOS Source Code
|
#include "mos/mm/cow.h"
#include "mos/mm/mm.h"
#include "mos/mm/mmstat.h"
#include "mos/mm/paging/paging.h"
#include "mos/platform/platform.h"
#include <mos/interrupt/ipi.h>
#include <mos/mm/physical/pmm.h>
#include <mos/syslog/printk.h>
#include <mos/tasks/process.h>
#include <mos/tasks/task_types.h>
#include <mos/types.h>
#include <mos_string.h>
Go to the source code of this file.
Functions | |
static phyframe_t * | zero_page (void) |
static vmfault_result_t | cow_zod_fault_handler (vmap_t *vmap, ptr_t fault_addr, pagefault_t *info) |
vmap_t * | cow_clone_vmap_locked (mm_context_t *target_mmctx, vmap_t *src_vmap) |
Copy-on-write a page range. | |
vmap_t * | cow_allocate_zeroed_pages (mm_context_t *mmctx, size_t npages, ptr_t vaddr, valloc_flags allocflags, vm_flags flags) |
Allocate zero-on-demand pages at a specific address. | |
Variables | |
static phyframe_t * | _zero_page = NULL |
|
static |
Definition at line 22 of file cow.c.
Referenced by cow_zod_fault_handler().
|
static |
Definition at line 34 of file cow.c.
Referenced by cow_allocate_zeroed_pages(), and cow_clone_vmap_locked().
vmap_t * cow_clone_vmap_locked | ( | mm_context_t * | target_mmctx, |
vmap_t * | source_vmap ) |
Copy-on-write a page range.
target_mmctx | The mm context to copy to |
source_vmap | The vmap to copy from |
Definition at line 62 of file cow.c.
Referenced by process_do_fork().
vmap_t * cow_allocate_zeroed_pages | ( | mm_context_t * | handle, |
size_t | npages, | ||
ptr_t | vaddr, | ||
valloc_flags | hints, | ||
vm_flags | flags ) |
Allocate zero-on-demand pages at a specific address.
handle | The paging handle to use |
npages | The number of pages to allocate |
vaddr | The virtual address to allocate at |
hints | Allocation hints, see valloc_flags |
flags | VM flags to use |
Definition at line 79 of file cow.c.
Referenced by mmap_anonymous(), process_do_execveat(), and thread_new().
|
static |
Definition at line 21 of file cow.c.
Referenced by zero_page().