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
38
39PtrResult<vmap_t> mm_get_free_vaddr_locked(MMContext *mmctx, size_t n_pages, ptr_t base_vaddr, bool exact);
40
56void mm_map_kernel_pages(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, size_t npages, VMFlags flags);
57PtrResult<vmap_t> mm_map_user_pages(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, size_t npages, VMFlags flags, vmap_type_t type, vmap_content_t content, bool exact = false);
58
70void mm_replace_page_locked(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, VMFlags flags);
71
86
94bool mm_get_is_mapped_locked(MMContext *mmctx, ptr_t vaddr);
95
104void mm_flag_pages_locked(MMContext *mmctx, ptr_t vaddr, size_t npages, VMFlags flags);
105
107
vmap_type_t
Definition mm.hpp:32
vmap_content_t
Definition mm.hpp:23
void mm_flag_pages_locked(MMContext *mmctx, ptr_t vaddr, size_t npages, VMFlags flags)
Update the flags of a block of virtual memory.
Definition paging.cpp:171
void mm_map_kernel_pages(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, size_t npages, VMFlags flags)
Map a block of virtual memory to a block of physical memory.
Definition paging.cpp:82
PtrResult< vmap_t > mm_get_free_vaddr_locked(MMContext *mmctx, size_t n_pages, ptr_t base_vaddr, bool exact)
Gets npages unmapped free pages from a page table.
Definition paging.cpp:18
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:159
PtrResult< vmap_t > mm_clone_vmap_locked(const 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:132
ptr_t mm_get_phys_addr(MMContext *ctx, ptr_t vaddr)
Definition paging.cpp:179
void mm_replace_page_locked(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, VMFlags flags)
Replace the mappings of a page with a new physical frame.
Definition paging.cpp:112
PtrResult< vmap_t > mm_map_user_pages(MMContext *mmctx, ptr_t vaddr, pfn_t pfn, size_t npages, VMFlags flags, vmap_type_t type, vmap_content_t content, bool exact=false)
Definition paging.cpp:92
Definition mm.hpp:60
unsigned long long pfn_t
Definition types.h:37
unsigned long ptr_t
Definition types.h:21