MOS Source Code
Loading...
Searching...
No Matches
paging.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-3.0-or-later
2
3#pragma once
4
5#include "mos/mm/mm.hpp"
6
10
18
24
44
45PtrResult<vmap_t> mm_get_free_vaddr_locked(MMContext *mmctx, size_t n_pages, ptr_t base_vaddr, valloc_flags flags);
46
61void mm_map_kernel_pages(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, size_t npages, vm_flags flags);
62PtrResult<vmap_t> mm_map_user_pages(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, size_t npages, vm_flags flags, valloc_flags vaflags, vmap_type_t type,
63 vmap_content_t content);
64
76void mm_replace_page_locked(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, vm_flags flags);
77
92
100bool mm_get_is_mapped_locked(MMContext *mmctx, ptr_t vaddr);
101
110void mm_flag_pages_locked(MMContext *mmctx, ptr_t vaddr, size_t npages, vm_flags flags);
111
113
vmap_type_t
Definition mm.hpp:31
vmap_content_t
Definition mm.hpp:22
valloc_flags
Definition paging.hpp:20
void mm_map_kernel_pages(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, size_t npages, vm_flags flags)
Map a block of virtual memory to a block of physical memory.
Definition paging.cpp:82
bool mm_get_is_mapped_locked(MMContext *mmctx, ptr_t vaddr)
Get if a virtual address is mapped in a page table.
Definition paging.cpp:160
PtrResult< vmap_t > mm_map_user_pages(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, size_t npages, vm_flags flags, valloc_flags vaflags, vmap_type_t type, vmap_content_t content)
Definition paging.cpp:92
void mm_replace_page_locked(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, vm_flags flags)
Replace the mappings of a page with a new physical frame.
Definition paging.cpp:113
ptr_t mm_get_phys_addr(MMContext *ctx, ptr_t vaddr)
Definition paging.cpp:180
void mm_flag_pages_locked(MMContext *mmctx, ptr_t vaddr, size_t npages, vm_flags flags)
Update the flags of a block of virtual memory.
Definition paging.cpp:172
PtrResult< vmap_t > mm_clone_vmap_locked(vmap_t *src_vmap, MMContext *dst_ctx)
Remap a block of virtual memory from one page table to another, i.e. copy the mappings.
Definition paging.cpp:133
PtrResult< vmap_t > mm_get_free_vaddr_locked(MMContext *mmctx, size_t n_pages, ptr_t base_vaddr, valloc_flags flags)
Gets npages unmapped free pages from a page table.
Definition paging.cpp:18
@ VALLOC_EXACT
Allocate pages at the exact address.
Definition paging.hpp:22
@ VALLOC_DEFAULT
Default allocation flags.
Definition paging.hpp:21
@ MMAP_EXACT
Definition mm_types.h:16
vm_flags
Definition platform.hpp:42
Definition mm.hpp:59
unsigned long long pfn_t
Definition types.h:37
unsigned long ptr_t
Definition types.h:21