PMAP_QENTER(9)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

okay so bestie, welcome to PMAP_QENTER(9) from the Kernel Developer's Manual ✨ this page is giving temporary kernel-space mapping management, and we're gonna get into it.

πŸ’– NAME πŸ’–

pmap_qenter, pmap_qremove β€” manage temporary kernel space mappings 🫢

✨ SYNOPSIS ✨

#include <sys/param.h>
#include <vm/vm.h>
#include <vm/pmap.h>

void
pmap_qenter(vm_offset_t sva, vm_page_t *m, int count);

void
pmap_qremove(vm_offset_t sva, int count);

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so pmap_qenter() takes a linear array of count pointers to wired pages, and that array is m β€” yes bestie, the wired-page pointer lineup β€” and it enters each one of those pages into kernel virtual address (KVA) space, starting at the address sva. The pages are mapped non-executable, if possible. Not me being shady, but the page itself gives the example that non-PAE i386 has no capability to map pages non-executable 😭. So like, β€œif possible” is doing real work there.

Then pmap_qremove() tears out a mapping from the kernel virtual address space, beginning at sva and going for count pages πŸ’… periodt.

πŸ”₯ IMPLEMENTATION NOTES πŸ”₯

pmap_qenter() is intended for temporary mappings that do not require page modification or reference counting. Old mappings? Simply overwritten, no cap. Also mandatory: the pages must be wired into physical memory. Like, that’s not optional, bestie 🫢.

The corresponding pmap_qremove() function is intended to remove such temporary mappings. Iconic cleanup behavior fr fr.

πŸ‘‘ SEE ALSO πŸ‘‘

🌸 AUTHORS 🌸

This manual page was written by Bruce M Simpson <bms@spc.org> πŸŽ€.


and that’s the whole page, bestie! it came from the Debian edition, dated February 15, 2018, and it’s the PMAP_QENTER(9) page β€” mwah πŸ’‹

πŸ“¦ where this page comes from