summaryrefslogtreecommitdiff
path: root/share/man/man9
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/man9')
-rw-r--r--share/man/man9/dcdr.92
-rw-r--r--share/man/man9/dynalloc.92
-rw-r--r--share/man/man9/kconf.981
-rw-r--r--share/man/man9/mmio.966
-rw-r--r--share/man/man9/panic.92
-rw-r--r--share/man/man9/pci_conf.978
-rw-r--r--share/man/man9/spinlock.92
-rw-r--r--share/man/man9/timer.92
-rw-r--r--share/man/man9/vm.946
-rw-r--r--share/man/man9/vm_map.997
10 files changed, 373 insertions, 5 deletions
diff --git a/share/man/man9/dcdr.9 b/share/man/man9/dcdr.9
index 1b8995a..37d7622 100644
--- a/share/man/man9/dcdr.9
+++ b/share/man/man9/dcdr.9
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team.
+.\" Copyright (c) 2023-2025 Ian Marco Moffett and the Osmora Team.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
diff --git a/share/man/man9/dynalloc.9 b/share/man/man9/dynalloc.9
index d1c4723..c59c8b7 100644
--- a/share/man/man9/dynalloc.9
+++ b/share/man/man9/dynalloc.9
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team.
+.\" Copyright (c) 2023-2025 Ian Marco Moffett and the Osmora Team.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
diff --git a/share/man/man9/kconf.9 b/share/man/man9/kconf.9
new file mode 100644
index 0000000..0257e9b
--- /dev/null
+++ b/share/man/man9/kconf.9
@@ -0,0 +1,81 @@
+.\" Copyright (c) 2023-2025 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 Jun 7 2025
+.Dt KCONF 9
+.Os Hyra
+.Sh NAME
+.Nm kconf - Hyra kernel configuration
+.Sh SYNOPSIS
+GENERIC configuration:
+.Ft sys/arch/<arch>/conf/GENERIC
+
+Kconf sources:
+.Ft tools/kconf/
+
+.Sh DESCRIPTION
+
+Hyra provides the kconf format for kernel configuration by allowing
+the user to create defines that represent yes/no options and fixed values.
+
+Running kconf on a configuration file results in define flags (-D__KEY=val) to
+be generated so that they may be passed to the compiler of choice.
+
+The
+.Ft option
+keyword allows users to define an option that
+can either be yes or no. For example, the following
+may be used to create an option "FOO" to be set to "yes":
+
+.Ft option FOO yes
+
+This will be given to the kernel as __FOO, for yes/no options the value
+of either 1 (yes) or 0 will be given.
+
+Similarly, a user may create a define that holds a fixed value
+by using the
+.Ft setval
+keyword.
+
+For example, the following may be used to create an option
+"MEOW" set to 0xCA7F00D:
+
+.Ft setval MEOW 0xCA7F00D
+
+These options can be read within the kernel by checking if
+the define exists and potentially falling back to a default
+value if not. This example shows how "MEOW" can be read:
+
+.Bd -literal
+#if defined(__MEOW) /* Option is prefixed with "__" */
+#define MEOW __MEOW
+#else
+#define MEOW 0
+#endif /* __MEOW */
+.Ed
+
+.Sh AUTHORS
+.An Ian Moffett Aq Mt ian@osmora.org
diff --git a/share/man/man9/mmio.9 b/share/man/man9/mmio.9
new file mode 100644
index 0000000..4ede196
--- /dev/null
+++ b/share/man/man9/mmio.9
@@ -0,0 +1,66 @@
+.\" Copyright (c) 2023-2025 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 Feb 18 2025
+.Dt MMIO 9
+.Os Hyra
+.Sh NAME
+.Nm mmio - hyra MMIO interface
+.Sh SYNOPSIS
+.In sys/mmio.h
+
+.Bd -literal
+static inline void mmio_write8(void *addr, uint8_t val);
+static inline void mmio_write16(void *addr, uint16_t val);
+static inline void mmio_write32(void *addr, uint32_t val);
+#if __SIZEOF_SIZE_T__ == 8
+static inline void mmio_write64(void *addr, uint64_t val);
+#endif
+__extension__
+.Ed
+
+.Sh DESCRIPTION
+In short, MMIO is a method of writing to registers
+of an I/O device via a mapped porition of memory. MMIO
+should NOT be done on your own when doing Hyra kernel programming.
+Instead, rely on Hyra's MMIO interface and use
+.Ft mmio_read<n>()
+and
+.Ft mmio_write<n>()
+functions. Where `n` is 8 to 32 on 32-bit machines, and to 64
+on 64-bit machines.
+
+The
+.Ft addr
+argument can be either a physical address or virtual
+address; however, it is recommended to use virtual addresses
+for the sake of consistency.
+
+.Sh SEE ALSO
+.Xr vm_map 9,
+
+.Sh AUTHORS
+.An Ian Moffett Aq Mt ian@osmora.org
diff --git a/share/man/man9/panic.9 b/share/man/man9/panic.9
index bc60547..48a6da4 100644
--- a/share/man/man9/panic.9
+++ b/share/man/man9/panic.9
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team.
+.\" Copyright (c) 2023-2025 Ian Marco Moffett and the Osmora Team.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
diff --git a/share/man/man9/pci_conf.9 b/share/man/man9/pci_conf.9
new file mode 100644
index 0000000..4db07f3
--- /dev/null
+++ b/share/man/man9/pci_conf.9
@@ -0,0 +1,78 @@
+.\" Copyright (c) 2023-2024 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 Feb 20 2024
+.Dt PCI_CONF 9
+.Os Hyra
+.Sh NAME
+.Nm pci_conf - PCI config space interface
+.Sh SYNOPSIS
+.In dev/pci/pci.h
+
+.Ft pcireg_t
+.Fn pci_readl "struct pci_device *dev" "uint32_t offset"
+
+.Ft void
+.Fn pci_writel "struct pci_device *dev" "uint32_t offset" "pcireg_t val"
+
+.Sh DESCRIPTION
+The PCI configuration space is a 256-byte region implemented
+per device, consisting of registers used for host-to-device
+communication and device-specific configuration.
+
+The Hyra PCI driver provides an API for interfacing
+with a device's configuration space.
+
+The
+.Ft pci_readl()
+function returns a 32-bit value from the
+configuration space of the device pointed
+to by the
+.Ft dev
+argument. The
+.Ft offset
+argument describes how far into the configuration
+space should be read from.
+
+The
+.Ft pci_writel()
+function writes a 32-bit value into the configuration
+space of the device pointed to by the
+.Ft dev
+argument. The
+.Ft offset
+argument describes how far into the configuration space
+.Ft val
+should be written to.
+
+For more information, refer to section 6 of the PCI Local Bus
+Specification 3.0
+
+.Sh AUTHORS
+.An Ian Moffett Aq Mt ian@osmora.org
+
+.Sh HISTORY
+First appeared in Hyra v1.2
diff --git a/share/man/man9/spinlock.9 b/share/man/man9/spinlock.9
index 26cdc31..3d5b941 100644
--- a/share/man/man9/spinlock.9
+++ b/share/man/man9/spinlock.9
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team.
+.\" Copyright (c) 2023-2025 Ian Marco Moffett and the Osmora Team.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
diff --git a/share/man/man9/timer.9 b/share/man/man9/timer.9
index d5f3c98..1c456a4 100644
--- a/share/man/man9/timer.9
+++ b/share/man/man9/timer.9
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team.
+.\" Copyright (c) 2023-2025 Ian Marco Moffett and the Osmora Team.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
diff --git a/share/man/man9/vm.9 b/share/man/man9/vm.9
new file mode 100644
index 0000000..7601a45
--- /dev/null
+++ b/share/man/man9/vm.9
@@ -0,0 +1,46 @@
+.\" Copyright (c) 2023-2025 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 Jun 6 2024
+.Dt VM 9
+.Os Hyra
+.Sh NAME
+.Nm vm - hyra virtual memory subsystem
+.Sh SYNOPSIS
+.In vm/vm.h
+
+.Sh DESCRIPTION
+The Hyra virtual memory subsystem is a crucial subsystem within the
+kernel. This subsystem facilitates machine independent management of
+per-process virtual address spaces and has many frameworks within that
+allow abstractions over various things such as pages, memory mapping, and
+objects.
+
+.Sh AUTHORS
+.An Ian Moffett Aq Mt ian@osmora.org
+
+.Sh SEE ALSO
+.Xr vm_map 9
diff --git a/share/man/man9/vm_map.9 b/share/man/man9/vm_map.9
new file mode 100644
index 0000000..9c5a3f6
--- /dev/null
+++ b/share/man/man9/vm_map.9
@@ -0,0 +1,97 @@
+.\" Copyright (c) 2023-2025 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 Jun 6 2024
+.Dt VM_MAP 9
+.Os Hyra
+.Sh NAME
+.Nm vm_map - create/destory a virtual memory mapping
+.Sh SYNOPSIS
+.In vm/map.h
+
+.Ft int
+.Fn vm_map "struct vas vas" "vaddr_t va" "paddr_t pa" "vm_prot_t prot" "size_t count"
+
+.Ft int
+.Fn vm_unmap "struct vas vas" "vaddr_t va" "size_t count"
+
+.Sh DESCRIPTION
+
+The Hyra virtual memory mapping framework provides a machine independent
+interface for mapping and unmapping pages to respective page frames.
+
+The
+.Fn vm_map
+function creates a virtual to physical memory mapping.
+
+The
+.Fa vas
+argument specifies the virtual address space for the mapping
+to be created within.
+
+The
+.Fa va
+argument specifies the virtual address to be mapped.
+
+The
+.Fa pa
+argument specifies the physical address that
+.Fa va
+is to be mapped to.
+
+The
+.Fa prot
+argument specifies the virtual memory protection flags.
+
+The
+.Fa count
+argument specifies the number of bytes to be mapped which
+is to be aligned to the machine's page size.
+
+The
+.Fn vm_unmap
+function destroys a virtual to physical memory mapping.
+
+The
+.Fa vas
+argument specifies the virtual address space for the mapping
+to be destroyed within.
+
+
+The
+.Fa va
+argument specifies the virtual address to be unmapped.
+
+The
+.Fa count
+argument specifies the number of bytes to be unmapped which
+is to be aligned to the machine's page size.
+
+.Sh AUTHORS
+.An Ian Moffett Aq Mt ian@osmora.org
+
+.Sh SEE ALSO
+.Xr vm_map 9