diff options
Diffstat (limited to 'share/man/man9/arch.9')
-rw-r--r-- | share/man/man9/arch.9 | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/share/man/man9/arch.9 b/share/man/man9/arch.9 deleted file mode 100644 index 5bcac2d..0000000 --- a/share/man/man9/arch.9 +++ /dev/null @@ -1,133 +0,0 @@ -.\" 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 Mar 13 2024 -.Dt ARCH 9 -.Os Hyra -.Sh NAME -.Nm arch - hyra arch information -.Sh SYNOPSIS -.In sys/machdep.h -.In machine/cpu.h -.In machine/pmap.h -.Sh DESCRIPTION -NOTE: All examples will be for x86_64 but can be applied to others - - -Information about how Hyra 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 shown below: - -.Bd -literal -struct cpu_info { - /* Per-arch fields */ - void *pmap; /* Current pmap */ - uint32_t id; - struct spinlock lock; - /* AMD64 */ - ... -}; -.Ed - -There will be some per-architecture fields that, for the sake -of keeping things tidy, should remain at the top of the struct. -These fields will be described below. - -The -.Ft pmap -field points to the current virtual memory context -which shall be NULL if not used. - -The -.Ft id -field simply identifies the CPU with a specific "ID". - -The -.Ft lock -field is a spinlock to prevent race conditions -while accessing this structure. This must be acquired -when accessing a -.Ft cpu_info -instance. - -There are also some common helper macros that shall -be implemented, these are described below. - -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 macro -.Ft hint_spinwait() -hints the processor that it is currently -in a spin-wait loop. This greatly reduces the -processor’s power consumption and improves -the performance of the spin-wait loop. - -The function these macros call must return a pointer -to a -.Ft cpu_info -structure. - -In the -.Ft machine/pmap.h -header, should be a struct containing information -about the address space. This header MUST be implemented -or compiler errors will occur. - -There also exists a -.Ft pcb -(Process Control Block) structure in the -.Ft machine/pcb.h -header which contains arch specific information per thread. - -This structure must be implemented per arch, this structure shall be set up -by the machdep subsystem, specifically in the -.Ft processor_init_pcb() -routine. - -The -.Ft processor_free_pcb() -routine shall also be implemented per arch to deallocate -resources when the thread is killed. - -.Sh AUTHORS -.An Ian Moffett Aq Mt ian@osmora.org |