diff options
author | Jon Santmyer <jon@jonsantmyer.com> | 2025-09-04 12:01:44 -0400 |
---|---|---|
committer | Jon Santmyer <jon@jonsantmyer.com> | 2025-09-04 12:01:44 -0400 |
commit | 032a7bc4d79efea100a00cf3464bea3249a07ff6 (patch) | |
tree | dab1be8053ac540e4163ffbff850fefa4f22171f /include/arch | |
parent | d26eb8b54969e79d933a8e20f2725343cd42deab (diff) | |
download | jove-kernel-032a7bc4d79efea100a00cf3464bea3249a07ff6.tar.gz jove-kernel-032a7bc4d79efea100a00cf3464bea3249a07ff6.tar.bz2 jove-kernel-032a7bc4d79efea100a00cf3464bea3249a07ff6.zip |
syscall message unmaps upon invokemain
Diffstat (limited to 'include/arch')
-rw-r--r-- | include/arch/x86_64/page-mapping.h | 7 | ||||
-rw-r--r-- | include/arch/x86_64/page.h | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/include/arch/x86_64/page-mapping.h b/include/arch/x86_64/page-mapping.h index bc495dd..fd620ea 100644 --- a/include/arch/x86_64/page-mapping.h +++ b/include/arch/x86_64/page-mapping.h @@ -5,4 +5,11 @@ pmle_t *page_mapping_traverse(pmle_t *pml4, uint8_t depth, uint16_t *path); +/**@FUNC Get the pmle associated with this virtual address down to a given depth. + * At depth=0, gets &pml4[pml4i] + * At depth=1, gets &pml4[pml4i][pml3i] + * At depth=2, gets &pml4[pml4i][pml3i][pml2i] + * etc...*/ +pmle_t *mem_mapping_vptr_mapping(pmle_t *pml4, uint8_t depth, uintptr_t vptr); + #endif diff --git a/include/arch/x86_64/page.h b/include/arch/x86_64/page.h index e62b8d6..7c6186a 100644 --- a/include/arch/x86_64/page.h +++ b/include/arch/x86_64/page.h @@ -33,8 +33,8 @@ typedef union jove_PageMapLevelEntry typedef uint16_t pmli_t; -#define PML_SHL(l) ((l * 9) + 3) -#define PML_I_FOR_LAYER(v, l) ((v >> PML_SHL(l)) % 512) +#define PML_SHL(l) (((l) * 9) + 3) +#define PML_I_FOR_LAYER(v, l) (((v) >> PML_SHL(l)) % 512) uintptr_t vmem_ident_tophys(void *vptr); void *vmem_phys_tovirt(uintptr_t pptr); |