summaryrefslogtreecommitdiff
path: root/share/man/man9
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-02-18 17:42:06 -0500
committerIan Moffett <ian@osmora.org>2025-02-18 17:42:06 -0500
commitde70ee7c37547beefee4311ec62e0d091529f43b (patch)
tree69f85673cd1c80aa7b78ce1a9e6323ce59ddfc95 /share/man/man9
parent8654dae3a55246763e385c38343789923d54c081 (diff)
share: man: Add mmio(9)
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'share/man/man9')
-rw-r--r--share/man/man9/mmio.963
1 files changed, 63 insertions, 0 deletions
diff --git a/share/man/man9/mmio.9 b/share/man/man9/mmio.9
new file mode 100644
index 0000000..7833cb0
--- /dev/null
+++ b/share/man/man9/mmio.9
@@ -0,0 +1,63 @@
+.\" 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 AUTHORS
+.An Ian Moffett Aq Mt ian@osmora.org