summaryrefslogtreecommitdiff
path: root/share/man/arch.9
diff options
context:
space:
mode:
authorsigsegv7 <ian@vegaa.systems>2023-10-04 14:44:04 -0400
committersigsegv7 <ian@vegaa.systems>2023-10-04 14:44:04 -0400
commit2b23d0e6f56a287423dea91f2e70b00b3eb29d80 (patch)
tree6b8e7d21a48f01817f319c39d3df5d9aaca194ab /share/man/arch.9
parentb480199b5ae3ee0f94c2f9df1a9ff2547a65576e (diff)
docs: Add share/man for manpages
Signed-off-by: sigsegv7 <ian@vegaa.systems>
Diffstat (limited to 'share/man/arch.9')
-rw-r--r--share/man/arch.973
1 files changed, 73 insertions, 0 deletions
diff --git a/share/man/arch.9 b/share/man/arch.9
new file mode 100644
index 0000000..dca490b
--- /dev/null
+++ b/share/man/arch.9
@@ -0,0 +1,73 @@
+.\" Copyright (c) 2023 Ian Marco Moffett and the VegaOS 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 VegaOS 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 October 4, 2023
+.Dt ARCH 9
+.Os
+.Sh NAME
+.Nm arch - vega arch information
+.Sh SYNOPSIS
+.In sys/machdep.h
+.In machine/cpu.h
+.Sh DESCRIPTION
+NOTE: All examples will be for x86_64 but can be applied to others
+
+
+Information about how Vega and architectures work together. This
+will describe headers and .c files that need to exist for all
+architectures and things they should include. The
+.Ft machine/cpu.h
+file contains information about the CPU for the specific
+architecture. Required structures in this header include the
+.Ft cpu_info
+struct which contains CPU specific fields.
+
+Example
+.Ft cpu_info
+structure for x86_64 is shown below:
+
+.Bd -literal
+struct cpu_info {
+ void *pmap; /* Current pmap */
+ volatile uint32_t lapic_freq;
+ ...
+};
+.Ed
+
+The macro
+.Ft this_cpu()
+calls an internal function that fetches the
+cpu_info structure for the current CPU.
+
+The macro
+.Ft get_bsp()
+calls an internal function that fetches the
+cpu_info structure for the BSP.
+
+The function these macros call must return a pointer
+to a
+.Ft cpu_info
+structure.