From 5e038268d1148282e5833fcb870c06edc4818339 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Fri, 15 Dec 2023 17:25:39 -0500 Subject: docs: man: Create virtual memory related manpages Signed-off-by: Ian Moffett --- share/man/man9/dynalloc.9 | 54 +++++++++++++++++++++++++++++++++++++++ share/man/man9/vm.9 | 65 +++++++++++++++++++++++++++++++++++++++++++++++ sys/include/vm/dynalloc.h | 4 +++ sys/include/vm/vm.h | 4 +++ 4 files changed, 127 insertions(+) create mode 100644 share/man/man9/dynalloc.9 create mode 100644 share/man/man9/vm.9 diff --git a/share/man/man9/dynalloc.9 b/share/man/man9/dynalloc.9 new file mode 100644 index 0000000..80793a9 --- /dev/null +++ b/share/man/man9/dynalloc.9 @@ -0,0 +1,54 @@ +.\" Copyright (c) 2023 Ian Marco Moffett and the Osmora Team. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" 1. Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Hyra nor the names of its +.\" contributors may be used to endorse or promote products derived from +.\" this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. + +.Dd December 15, 2023 +.Dt VM 9 +.Os +.Sh NAME +.Nm vm - hyra kernel dynamic memory allocation +.Sh SYNOPSIS +.In vm/dynalloc.h + +.Sh DESCRIPTION +This subsystem is an abstraction over the Two-Level Segregated +Fit memory allocator and provides wrappers for allocating, reallocating +and deallocating memory from a pool allocated per-core. + +The +.Ft dynalloc() +function is analogous to malloc() in other systems. + +The +.Ft dynrealloc() +function is analogous to realloc() in other systems. + +The +.Ft dynfree() +function is analogous to free() in other systems. + +.Sh AUTHORS +.An Ian Moffett Aq Mt ian@osmora.org diff --git a/share/man/man9/vm.9 b/share/man/man9/vm.9 new file mode 100644 index 0000000..6952151 --- /dev/null +++ b/share/man/man9/vm.9 @@ -0,0 +1,65 @@ +.\" Copyright (c) 2023 Ian Marco Moffett and the Osmora Team. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" 1. Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Hyra nor the names of its +.\" contributors may be used to endorse or promote products derived from +.\" this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. + +.Dd December 15, 2023 +.Dt VM 9 +.Os +.Sh NAME +.Nm vm - hyra machine independent virtual memory layer +.Sh SYNOPSIS +.In vm/vm.h +.Sh DESCRIPTION +The Hyra virtual memory subsystem handles various aspects of +virtual memory like memory mapping, keeping track of the virtual +memory context per core, etc. + +The term `kernel physical address' will be used to describe physical +addresses that are mapped to the higher half. + +The +.Ft VM_HIGHER_HALF +macro points to the higher half of the virtual memory space... +The mapping of kernel physical addresses to virtual addresses are +done with respect to the higher half, i.e., virtual = physical + hddm +(where hddm is the higher half). This cleanly reserves the lower half +of the virtual address space for userspace applications. + +The +.Ft PHYS_TO_VIRT +macro converts a kernel physical address to a higher half +virtual address. + +The +.Ft VIRT_TO_PHYS +macro converts a higher half virtual address to a kernel +physical address. + +.Sh AUTHORS +.An Ian Moffett Aq Mt ian@osmora.org + +.Sh SEE ALSO +.Xr dynalloc 9 diff --git a/sys/include/vm/dynalloc.h b/sys/include/vm/dynalloc.h index 8c51a55..f1a949d 100644 --- a/sys/include/vm/dynalloc.h +++ b/sys/include/vm/dynalloc.h @@ -27,6 +27,10 @@ * POSSIBILITY OF SUCH DAMAGE. */ +/* + * For documentation: See dynalloc(9) + */ + #ifndef _VM_DYNALLOC_H_ #define _VM_DYNALLOC_H_ diff --git a/sys/include/vm/vm.h b/sys/include/vm/vm.h index 2b4ccad..2d2af28 100644 --- a/sys/include/vm/vm.h +++ b/sys/include/vm/vm.h @@ -27,6 +27,10 @@ * POSSIBILITY OF SUCH DAMAGE. */ +/* + * For documentation: See vm(9) + */ + #ifndef _VM_H_ #define _VM_H_ -- cgit v1.2.3