aboutsummaryrefslogtreecommitdiff
path: root/sys/include
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2024-06-24 22:55:29 -0400
committerIan Moffett <ian@osmora.org>2024-06-24 22:55:29 -0400
commit236963e7563be3e3f8220dac7bb4af446928e194 (patch)
treee521ea226db0345bbb3679fffe09d96254b7dc73 /sys/include
parent214eadc62b5578f76c98a38a28f8b3d80ac4d6ad (diff)
Clean out for expt
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/include')
-rw-r--r--sys/include/arch/amd64/bus.h39
-rw-r--r--sys/include/arch/amd64/cpu.h158
-rw-r--r--sys/include/arch/amd64/cpu_mp.h40
-rw-r--r--sys/include/arch/amd64/cpuid.h40
-rw-r--r--sys/include/arch/amd64/frame.h82
-rw-r--r--sys/include/arch/amd64/frameasm.h103
-rw-r--r--sys/include/arch/amd64/gdt.h79
-rw-r--r--sys/include/arch/amd64/hpet.h40
-rw-r--r--sys/include/arch/amd64/idt.h70
-rw-r--r--sys/include/arch/amd64/intr.h37
-rw-r--r--sys/include/arch/amd64/io.h78
-rw-r--r--sys/include/arch/amd64/ioapic.h43
-rw-r--r--sys/include/arch/amd64/ioapicvar.h57
-rw-r--r--sys/include/arch/amd64/isa/i8042regs.h69
-rw-r--r--sys/include/arch/amd64/isa/i8254.h44
-rw-r--r--sys/include/arch/amd64/isa/spkr.h37
-rw-r--r--sys/include/arch/amd64/lapic.h59
-rw-r--r--sys/include/arch/amd64/lapicvar.h102
-rw-r--r--sys/include/arch/amd64/msr.h66
-rw-r--r--sys/include/arch/amd64/pcb.h39
-rw-r--r--sys/include/arch/amd64/spectre.h38
-rw-r--r--sys/include/arch/amd64/sysvec.h55
-rw-r--r--sys/include/arch/amd64/tlb.h42
-rw-r--r--sys/include/arch/amd64/trap.h78
-rw-r--r--sys/include/arch/amd64/tss.h120
-rw-r--r--sys/include/arch/amd64/uart.h40
-rw-r--r--sys/include/arch/amd64/vas.h54
-rw-r--r--sys/include/dev/ic/ahciregs.h142
-rw-r--r--sys/include/dev/ic/ahcivar.h146
-rw-r--r--sys/include/dev/ic/nvmevar.h280
-rw-r--r--sys/include/dev/pci/pci.h83
-rw-r--r--sys/include/dev/pci/pciregs.h66
-rw-r--r--sys/include/dev/pci/pcivar.h40
-rw-r--r--sys/include/dev/usb/xhciregs.h110
-rw-r--r--sys/include/dev/usb/xhcivar.h113
-rw-r--r--sys/include/dev/vcons/vcons.h72
-rw-r--r--sys/include/dev/vcons/vcons_io.h37
-rw-r--r--sys/include/dev/video/fbdev.h51
-rw-r--r--sys/include/firmware/acpi/acpi.h46
-rw-r--r--sys/include/firmware/acpi/tables.h130
-rw-r--r--sys/include/fs/devfs.h42
-rw-r--r--sys/include/fs/initramfs.h41
-rw-r--r--sys/include/fs/procfs.h51
-rw-r--r--sys/include/lib/assert.h42
-rw-r--r--sys/include/lib/bitmap.h56
-rw-r--r--sys/include/lib/logo.h39
-rw-r--r--sys/include/lib/stdarg.h44
-rw-r--r--sys/include/lib/string.h48
-rw-r--r--sys/include/lib/sysfont.h40
-rw-r--r--sys/include/sys/ascii.h45
-rw-r--r--sys/include/sys/cdefs.h182
-rw-r--r--sys/include/sys/cpu.h41
-rw-r--r--sys/include/sys/device.h68
-rw-r--r--sys/include/sys/driver.h57
-rw-r--r--sys/include/sys/elf.h499
-rw-r--r--sys/include/sys/errno.h159
-rw-r--r--sys/include/sys/exec.h37
-rw-r--r--sys/include/sys/fbdev.h48
-rw-r--r--sys/include/sys/filedesc.h72
-rw-r--r--sys/include/sys/intr.h55
-rw-r--r--sys/include/sys/ksyms.h44
-rw-r--r--sys/include/sys/limine.h495
-rw-r--r--sys/include/sys/loader.h77
-rw-r--r--sys/include/sys/machdep.h56
-rw-r--r--sys/include/sys/mmio.h112
-rw-r--r--sys/include/sys/mount.h80
-rw-r--r--sys/include/sys/mutex.h42
-rw-r--r--sys/include/sys/panic.h41
-rw-r--r--sys/include/sys/proc.h91
-rw-r--r--sys/include/sys/queue.h173
-rw-r--r--sys/include/sys/reboot.h45
-rw-r--r--sys/include/sys/sched.h53
-rw-r--r--sys/include/sys/sched_state.h42
-rw-r--r--sys/include/sys/schedvar.h61
-rw-r--r--sys/include/sys/signal.h46
-rw-r--r--sys/include/sys/sio.h57
-rw-r--r--sys/include/sys/spinlock.h51
-rw-r--r--sys/include/sys/syscall.h68
-rw-r--r--sys/include/sys/syslog.h55
-rw-r--r--sys/include/sys/system.h43
-rw-r--r--sys/include/sys/termios.h69
-rw-r--r--sys/include/sys/timer.h91
-rw-r--r--sys/include/sys/tty.h74
-rw-r--r--sys/include/sys/types.h77
-rw-r--r--sys/include/sys/vfs.h67
-rw-r--r--sys/include/sys/vnode.h79
-rw-r--r--sys/include/vm/dynalloc.h44
-rw-r--r--sys/include/vm/fault.h38
-rw-r--r--sys/include/vm/map.h84
-rw-r--r--sys/include/vm/obj.h61
-rw-r--r--sys/include/vm/page.h41
-rw-r--r--sys/include/vm/pager.h51
-rw-r--r--sys/include/vm/physseg.h48
-rw-r--r--sys/include/vm/pmap.h117
-rw-r--r--sys/include/vm/tlsf.h90
-rw-r--r--sys/include/vm/vm.h78
96 files changed, 0 insertions, 7532 deletions
diff --git a/sys/include/arch/amd64/bus.h b/sys/include/arch/amd64/bus.h
deleted file mode 100644
index 53d1fe2..0000000
--- a/sys/include/arch/amd64/bus.h
+++ /dev/null
@@ -1,39 +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.
- */
-
-#ifndef _AMD64_BUS_H_
-#define _AMD64_BUS_H_
-
-#include <sys/types.h>
-
-typedef uint64_t bus_addr_t;
-
-int bus_map(bus_addr_t addr, size_t size, int flags, void **vap);
-
-#endif /* !_AMD64_BUS_H_ */
diff --git a/sys/include/arch/amd64/cpu.h b/sys/include/arch/amd64/cpu.h
deleted file mode 100644
index 3febf5a..0000000
--- a/sys/include/arch/amd64/cpu.h
+++ /dev/null
@@ -1,158 +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.
- */
-
-#ifndef _AMD64_CPU_H_
-#define _AMD64_CPU_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-#include <sys/spinlock.h>
-#include <sys/sched_state.h>
-#include <sys/queue.h>
-#include <sys/intr.h>
-#include <machine/tss.h>
-#include <machine/msr.h>
-/*
- * XXX: We are not using the PAUSE instruction for the sake of
- * ensuring compatibility... PAUSE is F3 90, REP NOP is
- * F3 90... REP NOP will be read as a PAUSE on processors
- * that support it.
- */
-#define hint_spinwait() __ASMV("rep; nop")
-
-#define this_cpu() amd64_this_cpu()
-#define get_bsp() amd64_get_bsp()
-#define is_intr_mask() amd64_is_intr_mask()
-#define CPU_INFO_LOCK(info) spinlock_acquire(&(info->lock))
-#define CPU_INFO_UNLOCK(info) spinlock_release(&(info->lock))
-
-/*
- * Info about a specific processor.
- *
- * XXX: Spinlock must be acquired outside of this module!
- * None of these module's internal functions should
- * acquire the spinlock themselves!
- */
-struct cpu_info {
- /* Per-arch fields */
- void *pmap; /* Current pmap */
- uint32_t id;
- uint32_t idx;
- struct spinlock lock;
- struct sched_state sched_state;
- TAILQ_ENTRY(cpu_info) link;
-
- /* AMD64 */
- volatile size_t lapic_tmr_freq;
- volatile void *lapic_base;
- volatile bool has_x2apic;
- volatile struct tss_entry *tss;
- volatile uintptr_t tlb_flush_ptr; /* Address to flush */
- struct intr_info *tlb_shootdown; /* Shootdown interrupt info */
-};
-
-/*
- * Contains information for the current
- * core. Stored in %GS.
- *
- * MUST REMAIN IN ORDER!!!
- */
-struct cpu_ctx {
- struct cpu_info *ci;
-};
-
-/*
- * Returns true for this core if maskable
- * interrupts are masked (CLI) and false if
- * they aren't (STI).
- */
-static inline bool
-amd64_is_intr_mask(void)
-{
- uint64_t flags;
-
- __ASMV("pushfq; pop %0" : "=rm" (flags) :: "memory");
- return !__TEST(flags, 1 << 9);
-}
-
-static inline void
-amd64_write_gs_base(uintptr_t val)
-{
- wrmsr(IA32_KERNEL_GS_BASE, val);
-}
-
-static inline uintptr_t
-amd64_read_gs_base(void)
-{
- return rdmsr(IA32_KERNEL_GS_BASE);
-}
-
-static inline uint64_t
-amd64_read_cr0(void)
-{
- uint64_t cr0;
- __ASMV("mov %%cr0, %0" : "=r" (cr0) :: "memory");
- return cr0;
-}
-
-static inline void
-amd64_write_cr0(uint64_t val)
-{
- __ASMV("mov %0, %%cr0" :: "r" (val) : "memory");
-}
-
-static inline uint64_t
-amd64_read_cr4(void)
-{
- uint64_t cr4;
- __ASMV("mov %%cr4, %0" : "=r" (cr4) :: "memory");
- return cr4;
-}
-
-static inline void
-amd64_write_cr4(uint64_t val)
-{
- __ASMV("mov %0, %%cr4" :: "r" (val) : "memory");
-}
-
-static inline void
-amd64_fxsave(void *area)
-{
- __ASMV("fxsave (%0)" :: "r" (area) : "memory");
-}
-
-static inline void
-amd64_fxrstor(void *area)
-{
- __ASMV("fxrstor (%0)" :: "r" (area) : "memory");
-}
-
-struct cpu_info *amd64_this_cpu(void);
-
-#endif /* !_AMD64_CPU_H_ */
diff --git a/sys/include/arch/amd64/cpu_mp.h b/sys/include/arch/amd64/cpu_mp.h
deleted file mode 100644
index 4047f3b..0000000
--- a/sys/include/arch/amd64/cpu_mp.h
+++ /dev/null
@@ -1,40 +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.
- */
-
-#ifndef _SYS_CPU_AP_H_
-#define _SYS_CPU_AP_H_
-
-#include <machine/cpu.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-__weak void ap_bootstrap(struct cpu_info *ci);
-__weak bool mp_supported(void);
-
-#endif /* !_SYS_CPU_AP_H_ */
diff --git a/sys/include/arch/amd64/cpuid.h b/sys/include/arch/amd64/cpuid.h
deleted file mode 100644
index b193d60..0000000
--- a/sys/include/arch/amd64/cpuid.h
+++ /dev/null
@@ -1,40 +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.
- */
-
-#ifndef _AMD64_CPUID_H_
-#define _AMD64_CPUID_H_
-
-#include <sys/cdefs.h>
-
-#define __CPUID(level, a, b, c, d) \
- __ASMV("cpuid\n\t" \
- : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \
- : "0" (level))
-
-#endif /* !_AMD64_CPUID_H_ */
diff --git a/sys/include/arch/amd64/frame.h b/sys/include/arch/amd64/frame.h
deleted file mode 100644
index 85edea9..0000000
--- a/sys/include/arch/amd64/frame.h
+++ /dev/null
@@ -1,82 +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.
- */
-
-#ifndef _AMD64_FRAME_H_
-#define _AMD64_FRAME_H_
-
-#if !defined(__ASSEMBLER__)
-
-#include <sys/types.h>
-
-struct trapframe {
- uint64_t trapno;
- uint64_t rax;
- uint64_t rcx;
- uint64_t rdx;
- uint64_t rbx;
- uint64_t rsi;
- uint64_t rdi;
- uint64_t rbp;
- uint64_t r8;
- uint64_t r9;
- uint64_t r10;
- uint64_t r11;
- uint64_t r12;
- uint64_t r13;
- uint64_t r14;
- uint64_t r15;
- /* Pushed by hardware */
- uint64_t error_code;
- uint64_t rip;
- uint64_t cs;
- uint64_t rflags;
- uint64_t rsp;
- uint64_t ss;
-};
-
-#define init_frame(FRAME, IP, SP) \
- (FRAME)->rip = IP; \
- (FRAME)->cs = 0x08; \
- (FRAME)->rflags = 0x202; \
- (FRAME)->rsp = SP; \
- (FRAME)->ss = 0x10; \
-
-#define init_frame_user(FRAME, IP, SP) \
- (FRAME)->rip = IP; \
- (FRAME)->cs = 0x18 | 3; \
- (FRAME)->rflags = 0x202; \
- (FRAME)->rsp = SP; \
- (FRAME)->ss = 0x20 | 3; \
-
-#define set_frame_sp(FRAME, SP) (FRAME)->rsp = SP
-#define set_frame_ip(FRAME, IP) (FRAME)->rip = IP
-#define get_frame_ip(FRAME) (FRAME)->rip
-
-#endif /* !defined(__ASSEMBLER__) */
-#endif /* !_AMD64_FRAME_H_ */
diff --git a/sys/include/arch/amd64/frameasm.h b/sys/include/arch/amd64/frameasm.h
deleted file mode 100644
index cdcdd20..0000000
--- a/sys/include/arch/amd64/frameasm.h
+++ /dev/null
@@ -1,103 +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.
- */
-
-#ifndef _AMD64_FRAMEASM_H_
-#define _AMD64_FRAMEASM_H_
-
-/*
- * If the interrupt has an error code, this macro shall
- * be used to create the trapframe.
- *
- * XXX: A trapframe created with this must be popped with
- * pop_trapframe_ec
- */
-.macro push_trapframe_ec trapno
- push %r15
- push %r14
- push %r13
- push %r12
- push %r11
- push %r10
- push %r9
- push %r8
- push %rbp
- push %rdi
- push %rsi
- push %rbx
- push %rdx
- push %rcx
- push %rax
- push \trapno
-.endm
-
-/*
- * If the interrupt has an error code, this macro shall
- * be used to cleanup the trapframe.
- */
-.macro pop_trapframe_ec
- add $8, %rsp /* Trapno */
- pop %rax
- pop %rcx
- pop %rdx
- pop %rbx
- pop %rsi
- pop %rdi
- pop %rbp
- pop %r8
- pop %r9
- pop %r10
- pop %r11
- pop %r12
- pop %r13
- pop %r14
- pop %r15
-.endm
-
-/*
- * If the interrupt has no error code, this macro
- * shall be used to create the trapframe.
- *
- * XXX: A trapframe created with this must be popped
- * with pop_trapframe
- */
-.macro push_trapframe trapno
- push $0
- push_trapframe_ec \trapno
-.endm
-
-
-/*
- * If the interrupt has no error code, this macro shall
- * be used to cleanup the trapframe.
- */
-.macro pop_trapframe
- pop_trapframe_ec
- add $8, %rsp /* Pop error code */
-.endm
-#endif /* !_AMD64_FRAMEASM_H_ */
diff --git a/sys/include/arch/amd64/gdt.h b/sys/include/arch/amd64/gdt.h
deleted file mode 100644
index c3ea8e8..0000000
--- a/sys/include/arch/amd64/gdt.h
+++ /dev/null
@@ -1,79 +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.
- */
-
-#ifndef AMD64_GDT_H_
-#define AMD64_GDT_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-#define GDT_TSS 5
-#define KERNEL_CS 0x8
-#define KERNEL_DS 0x10
-
-struct __packed gdt_entry {
- uint16_t limit;
- uint16_t base_low;
- uint8_t base_mid;
- uint8_t access;
- uint8_t granularity;
- uint8_t base_hi;
-};
-
-struct __packed gdtr {
- uint16_t limit;
- uintptr_t offset;
-};
-
-static inline void
-gdt_load(struct gdtr *gdtr)
-{
- __asm("lgdt %0\n"
- "push $8\n" /* Push CS */
- "lea 1f(%%rip), %%rax\n" /* Load 1 label address into RAX */
- "push %%rax\n" /* Push the return address (label 1) */
- "lretq\n" /* Far return to update CS */
- "1:\n"
- " mov $0x10, %%eax\n"
- " mov %%eax, %%ds\n"
- " mov %%eax, %%es\n"
- " mov %%eax, %%fs\n"
- " mov %%eax, %%gs\n"
- " mov %%eax, %%ss\n"
- :
- : "m" (*gdtr)
- : "rax", "memory"
- );
-}
-
-extern struct gdt_entry g_gdt[256];
-extern struct gdt_entry *g_gdt_tss;
-extern struct gdtr g_gdtr;
-
-#endif /* !AMD64_GDT_H_ */
diff --git a/sys/include/arch/amd64/hpet.h b/sys/include/arch/amd64/hpet.h
deleted file mode 100644
index dc4366c..0000000
--- a/sys/include/arch/amd64/hpet.h
+++ /dev/null
@@ -1,40 +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.
- */
-
-#ifndef _TIMER_HPET_H_
-#define _TIMER_HPET_H_
-
-#include <sys/types.h>
-
-int hpet_init(void);
-int hpet_msleep(size_t ms);
-int hpet_usleep(size_t us);
-int hpet_nsleep(size_t ns);
-
-#endif /* !_TIMER_HPET_H_ */
diff --git a/sys/include/arch/amd64/idt.h b/sys/include/arch/amd64/idt.h
deleted file mode 100644
index 36ce44e..0000000
--- a/sys/include/arch/amd64/idt.h
+++ /dev/null
@@ -1,70 +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.
- */
-
-#ifndef _AMD64_IDT_H_
-#define _AMD64_IDT_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-#define LIDT(idtr) __ASMV("lidt %0" \
- :: "m" (idtr))
-
-#define IDT_TRAP_GATE_FLAGS 0x8F
-#define IDT_INT_GATE_FLAGS 0x8E
-#define IDT_INT_GATE_USER 0xEE
-
-/*
- * AMD64 Interrupt Gate Descriptor.
- */
-struct idt_entry {
- uint16_t off_lo; /* Low 16 bits of ISR offset */
- uint16_t segsel; /* Segment selector, hardcode to kernel CS */
- uint8_t ist : 2; /* Interrupt stack table */
- uint8_t zero : 1; /* Unused: keep zero */
- uint8_t zero1 : 4; /* Unused: keep zero */
- uint8_t type : 4; /* Gate type */
- uint8_t zero2 : 1; /* Unused: keep zero */
- uint8_t dpl : 2; /* Descriptor privilege level */
- uint8_t p : 1; /* Present (keep 1 to mark as valid) */
- uint16_t off_mid; /* Middle 16 bits of ISR offset */
- uint32_t off_hi; /* High 32-bits of ISR offset */
- uint32_t reserved; /* Reserved: keep zero */
-};
-
-struct __packed idtr {
- uint16_t limit;
- uintptr_t offset;
-};
-
-
-void idt_set_desc(uint8_t vec, uint8_t type, uintptr_t isr, uint8_t ist);
-void idt_load(void);
-
-#endif /* !_AMD64_IDT_H_ */
diff --git a/sys/include/arch/amd64/intr.h b/sys/include/arch/amd64/intr.h
deleted file mode 100644
index d48a573..0000000
--- a/sys/include/arch/amd64/intr.h
+++ /dev/null
@@ -1,37 +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.
- */
-
-#ifndef _AMD64_INTR_H_
-#define _AMD64_INTR_H_
-
-#define IST_SCHED 1U
-#define IST_HW_IRQ 2U
-#define IST_SW_INT 3U
-
-#endif /* !_AMD64_INTR_H_ */
diff --git a/sys/include/arch/amd64/io.h b/sys/include/arch/amd64/io.h
deleted file mode 100644
index c24c08d..0000000
--- a/sys/include/arch/amd64/io.h
+++ /dev/null
@@ -1,78 +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.
- */
-
-#ifndef _AMD64_IO_H_
-#define _AMD64_IO_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-static inline uint8_t
-inb(uint16_t port)
-{
- uint8_t result;
- __asm__("in %%dx, %%al" : "=a" (result) : "d" (port));
- return result;
-}
-
-static inline void
-outb(uint16_t port, uint8_t data)
-{
- __asm__("out %%al, %%dx" : :"a" (data), "d" (port));
-}
-
-static inline void
-outw(uint16_t port, uint16_t data)
-{
- __ASMV("outw %w0, %w1" : : "a" (data), "Nd" (port));
-}
-
-static inline uint16_t
-inw(uint16_t port)
-{
- uint16_t data;
- __ASMV("inw %w1, %w0" : "=a" (data) : "Nd" (port));
- return data;
-}
-
-static inline void
-outl(uint16_t port, uint32_t data)
-{
- __ASMV("outl %0, %w1" : : "a" (data), "Nd" (port));
-}
-
-static inline uint32_t
-inl(uint16_t port)
-{
- uint32_t data;
- __ASMV("inl %w1, %0" : "=a" (data) : "Nd" (port));
- return data;
-}
-
-#endif /* !_AMD64_IO_H_ */
diff --git a/sys/include/arch/amd64/ioapic.h b/sys/include/arch/amd64/ioapic.h
deleted file mode 100644
index 0d86441..0000000
--- a/sys/include/arch/amd64/ioapic.h
+++ /dev/null
@@ -1,43 +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.
- */
-
-#ifndef _AMD64_IOAPIC_H_
-#define _AMD64_IOAPIC_H_
-
-#include <sys/types.h>
-
-void ioapic_irq_mask(uint8_t irq);
-void ioapic_irq_unmask(uint8_t irq);
-void ioapic_gsi_mask(uint8_t gsi);
-void ioapic_gsi_unmask(uint8_t gsi);
-void ioapic_set_base(void *mmio_base);
-void ioapic_set_vec(uint8_t irq, uint8_t vector);
-void ioapic_init(void);
-
-#endif /* !_AMD64_IOAPIC_H_ */
diff --git a/sys/include/arch/amd64/ioapicvar.h b/sys/include/arch/amd64/ioapicvar.h
deleted file mode 100644
index 5128bc8..0000000
--- a/sys/include/arch/amd64/ioapicvar.h
+++ /dev/null
@@ -1,57 +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.
- */
-
-#ifndef _AMD64_IOAPICVAR_H_
-#define _AMD64_IOAPICVAR_H_
-
-#include <sys/types.h>
-
-/* Register offsets */
-#define IOREGSEL 0x00
-#define IOWIN 0x10
-#define IOAPICVER 0x01
-#define IOREDTBL 0x10
-
-union ioapic_redentry {
- struct {
- uint8_t vector;
- uint8_t delmod : 3;
- uint8_t destmod : 1;
- uint8_t delivs : 1;
- uint8_t intpol : 1;
- uint8_t remote_irr : 1;
- uint8_t trigger_mode : 1;
- uint8_t interrupt_mask : 1;
- uint64_t reserved : 39;
- uint8_t dest_field;
- };
- uint64_t value;
-};
-
-#endif /* !_AMD64_IOAPICVAR_H_ */
diff --git a/sys/include/arch/amd64/isa/i8042regs.h b/sys/include/arch/amd64/isa/i8042regs.h
deleted file mode 100644
index edef2ee..0000000
--- a/sys/include/arch/amd64/isa/i8042regs.h
+++ /dev/null
@@ -1,69 +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.
- */
-
-#ifndef _AMD64_I8042REG_H_
-#define _AMD64_I8042REG_H_
-
-#include <sys/cdefs.h>
-
-#define I8042_DATA 0x60
-#define I8042_STATUS 0x64
-#define I8042_COMMAND 0x64
-
-/* Status register bits */
-#define I8042_OBUF_FULL __BIT(0) /* Output buffer full */
-#define I8042_IBUF_FULL __BIT(1) /* Input buffer full */
-
-/* Commands */
-#define I8042_DISABLE_PORT0 0xAD
-#define I8042_DISABLE_PORT1 0xA7
-#define I8042_ENABLE_PORT0 0xAE
-#define I8042_ENABLE_PORT1 0xA8
-#define I8042_GET_CONFB 0x20
-#define I8042_SET_CONFB 0x60
-#define I8042_PORT1_SEND 0xD4
-
-/* Controller config bits */
-#define I8042_PORT0_INTR __BIT(0)
-#define I8042_PORT1_INTR __BIT(1)
-#define I8042_PORT0_CLK __BIT(4)
-#define I8042_PORT1_CLK __BIT(5)
-
-/* Aux commands */
-#define I8042_AUX_DEFAULTS 0xF5
-#define I8042_AUX_ENABLE 0xF4
-#define I8042_AUX_DISABLE 0xF5
-#define I8042_AUX_RESET 0xFF
-
-/* LED bits */
-#define I8042_LED_SCROLL __BIT(0)
-#define I8042_LED_NUM __BIT(1)
-#define I8042_LED_CAPS __BIT(2)
-
-#endif /* !_AMD64_I8042REG_H_ */
diff --git a/sys/include/arch/amd64/isa/i8254.h b/sys/include/arch/amd64/isa/i8254.h
deleted file mode 100644
index 8215bf4..0000000
--- a/sys/include/arch/amd64/isa/i8254.h
+++ /dev/null
@@ -1,44 +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.
- */
-
-#ifndef _AMD64_ISA_i8254_H_
-#define _AMD64_ISA_i8254_H_
-
-#include <sys/types.h>
-
-#define i8254_COMMAND 0x43
-#define i8254_CHANNEL_0 0x40
-#define i8254_CHANNEL_2 0x42
-#define i8254_DIVIDEND 1193182ULL
-
-uint16_t i8254_get_count(void);
-void i8254_set_reload(uint16_t val);
-void i8254_set_frequency(uint64_t frequency_hz);
-
-#endif /* !_AMD64_ISA_i8254_H_ */
diff --git a/sys/include/arch/amd64/isa/spkr.h b/sys/include/arch/amd64/isa/spkr.h
deleted file mode 100644
index 2691721..0000000
--- a/sys/include/arch/amd64/isa/spkr.h
+++ /dev/null
@@ -1,37 +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.
- */
-
-#ifndef _ISA_SPKR_H_
-#define _ISA_SPKR_H_
-
-#include <sys/types.h>
-
-int pcspkr_tone(uint16_t freq, uint32_t msec);
-
-#endif
diff --git a/sys/include/arch/amd64/lapic.h b/sys/include/arch/amd64/lapic.h
deleted file mode 100644
index c8a4de4..0000000
--- a/sys/include/arch/amd64/lapic.h
+++ /dev/null
@@ -1,59 +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.
- */
-
-#ifndef _AMD64_LAPIC_H_
-#define _AMD64_LAPIC_H_
-
-#include <sys/types.h>
-
-#define LAPIC_TMR_ONESHOT 0x00
-#define LAPIC_TMR_PERIODIC 0x01
-
-/* IPI Destination Shorthands */
-enum {
- IPI_SHORTHAND_NONE,
- IPI_SHORTHAND_SELF,
- IPI_SHORTHAND_ALL,
- IPI_SHORTHAND_OTHERS
-};
-
-/* IPI Destination Modes */
-enum {
- IPI_DEST_PHYSICAL,
- IPI_DEST_LOGICAL
-};
-
-void lapic_timer_init(size_t *freq_out);
-void lapic_timer_oneshot(bool mask, uint32_t count);
-void lapic_timer_oneshot_us(size_t us);
-void lapic_send_ipi(uint8_t id, uint8_t shorthand, uint8_t vector);
-void lapic_send_eoi(void);
-void lapic_init(void);
-
-#endif /* !_AMD64_LAPIC_H_ */
diff --git a/sys/include/arch/amd64/lapicvar.h b/sys/include/arch/amd64/lapicvar.h
deleted file mode 100644
index 84f73d2..0000000
--- a/sys/include/arch/amd64/lapicvar.h
+++ /dev/null
@@ -1,102 +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.
- */
-
-#ifndef _AMD64_LAPICVAR_H_
-#define _AMD64_LAPICVAR_H_
-
-#include <sys/cdefs.h>
-
-/* LAPIC register offsets */
-#define LAPIC_ID 0x0020U /* ID Register */
-#define LAPIC_VERSION 0x0030U /* Version Register */
-#define LAPIC_TPR 0x0080U /* Task Priority Register */
-#define LAPIC_APR 0x0090U /* Arbitration Priority Register */
-#define LAPIC_PPR 0x00A0U /* Processor Priority Register */
-#define LAPIC_EOI 0x00B0U /* End Of Interrupt Register */
-#define LAPIC_RRD 0x00C0U /* Remote Read Register */
-#define LAPIC_LDR 0x00D0U /* Logical Destination Register */
-#define LAPIC_DFR 0x00E0U /* Destination Format Register */
-#define LAPIC_SVR 0x00F0U /* Spurious Vector Register */
-#define LAPIC_ISR 0x0100U /* In service register (max=0x0220) */
-#define LAPIC_TMR 0x0180U /* Trigger Mode Register (max=0x0220) */
-#define LAPIC_IRR 0x0200U /* Interrupt Request Register (max=0x0270) */
-#define LAPIC_ERR 0x0280U /* Error Status Register */
-#define LAPIC_ICRLO 0x0300U /* Interrupt Command Low Register */
-#define LAPIC_ICRHI 0x0310U /* Interrupt Command High Register */
-#define LAPIC_LVT_TMR 0x0320U /* LVT Timer Register */
-#define LAPIC_DCR 0x03E0U /* Divide Configuration Register (for timer) */
-#define LAPIC_INIT_CNT 0x0380U /* Initial Count Register (for timer) */
-#define LAPIC_CUR_CNT 0x0390U /* Current Count Register (for timer) */
-
-#define IA32_APIC_BASE_MSR 0x1B
-
-/*
- * The x2APIC register space is accessed via
- * RDMSR/WRMSR instructions. The below defines
- * the base MSR address for the register space.
- */
-#define x2APIC_MSR_BASE 0x00000800
-
-/*
- * To hardware enable, OR the value
- * of the IA32_APIC_BASE MSR with
- * LAPIC_HW_ENABLE and rewrite it.
- *
- * To software enable, OR the value
- * of the SVR with LAPIC_SW_ENABLE
- * and rewrite it.
- *
- * LAPIC_SW_ENABLE has the low 8 bits set
- * as some hardware requires the spurious
- * vector to be hardwired to 1s so we'll
- * go with that to be safe.
- */
-#define LAPIC_HW_ENABLE __BIT(11)
-#define LAPIC_SW_ENABLE (__BIT(8) | 0xFF)
-#define x2APIC_ENABLE_SHIFT 10
-
-/*
- * The initial logical APIC ID to be set
- *
- * XXX: This value does *not* apply to processors
- * that support x2APIC mode. In x2APIC mode
- * the LDR register is readonly to system software.
- */
-#define LAPIC_STARTUP_LID 0x1
-
-/* LVT bits */
-#define LAPIC_LVT_MASK __BIT(16)
-#define LVT_TMR_ONESHOT 0x00
-#define LVT_TMR_PERIODIC 0x01
-#define LVT_TMR_TSC_DEADLINE 0x02
-
-/* LAPIC timer interrupt stack size in bytes */
-#define LAPIC_TMR_STACKSZ 4096
-
-#endif /* !_AMD64_LAPICVAR_H_ */
diff --git a/sys/include/arch/amd64/msr.h b/sys/include/arch/amd64/msr.h
deleted file mode 100644
index d36548b..0000000
--- a/sys/include/arch/amd64/msr.h
+++ /dev/null
@@ -1,66 +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.
- */
-
-#ifndef _AMD64_MSR_H_
-#define _AMD64_MSR_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-#define IA32_SPEC_CTL 0x00000048
-#define IA32_KERNEL_GS_BASE 0xC0000102
-
-static inline uint64_t
-rdmsr(uint32_t msr_addr)
-{
- uint32_t lo, hi;
-
- __ASMV("rdmsr"
- : "=a" (lo), "=d" (hi)
- : "c" (msr_addr)
- );
- return ((uint64_t)hi << 32) | lo;
-}
-
-static inline void
-wrmsr(uint32_t msr_addr, uint64_t value)
-{
- uint32_t lo, hi;
-
- lo = (uint32_t)value;
- hi = (uint32_t)(value >> 32);
-
- __ASMV("wrmsr"
- : /* No outputs */
- : "a" (lo), "d" (hi),
- "c" (msr_addr)
- );
-}
-
-#endif /* !_AMD64_MSR_H_ */
diff --git a/sys/include/arch/amd64/pcb.h b/sys/include/arch/amd64/pcb.h
deleted file mode 100644
index 0e0aab8..0000000
--- a/sys/include/arch/amd64/pcb.h
+++ /dev/null
@@ -1,39 +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.
- */
-
-#ifndef _AMD64_PCB_H_
-#define _AMD64_PCB_H_
-
-#include <sys/types.h>
-
-struct pcb {
- uint8_t *fpu_state;
-};
-
-#endif /* !_AMD64_PCB_H_ */
diff --git a/sys/include/arch/amd64/spectre.h b/sys/include/arch/amd64/spectre.h
deleted file mode 100644
index d12df21..0000000
--- a/sys/include/arch/amd64/spectre.h
+++ /dev/null
@@ -1,38 +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.
- */
-
-#ifndef _AMD64_SPECTRE_H_
-#define _AMD64_SPECTRE_H_
-
-#include <sys/cdefs.h>
-#include <sys/errno.h>
-
-__weak int try_spectre_mitigate(void);
-
-#endif
diff --git a/sys/include/arch/amd64/sysvec.h b/sys/include/arch/amd64/sysvec.h
deleted file mode 100644
index 99a84c0..0000000
--- a/sys/include/arch/amd64/sysvec.h
+++ /dev/null
@@ -1,55 +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.
- */
-
-#ifndef _AMD64_SYSVEC_H_
-#define _AMD64_SYSVEC_H_
-
-#include <sys/cdefs.h>
-
-/*
- * Interrupt vectors reserved
- * to core system usage excluding
- * device IRQs routed by 8259 PIC,
- * I/O APIC, etc.
- */
-typedef enum {
- SYSVEC_LAPIC_TIMER = 0x21, /* Local APIC timer */
- SYSVEC_IPI, /* IPI vector */
- SYSVEC_HLT, /* Halt vector */
- SYSVEC_PCKBD, /* Keyboard vector */
- SYSVEC_TLB, /* TLB shootdown */
-
- /* -- XXX: New vectors go above -- */
- NSYSVEC_BASE, /* Non-system vector base */
-} sysvec_t;
-
-/* Unlikely, but just in case */
-__STATIC_ASSERT(NSYSVEC_BASE <= 0xFF, "VECTOR OVERFLOW CAUGHT");
-
-#endif /* !_AMD64_SYSVEC_H_ */
diff --git a/sys/include/arch/amd64/tlb.h b/sys/include/arch/amd64/tlb.h
deleted file mode 100644
index c85e0e1..0000000
--- a/sys/include/arch/amd64/tlb.h
+++ /dev/null
@@ -1,42 +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.
- */
-
-#ifndef _ASM_TLB_H_
-#define _ASM_TLB_H_
-
-#include <sys/cdefs.h>
-
-#define tlb_flush(va) \
- __ASMV("invlpg (%0)" \
- : \
- : "r" (va) \
- : "memory" \
- )
-
-#endif /* !_ASM_TLB_H_ */
diff --git a/sys/include/arch/amd64/trap.h b/sys/include/arch/amd64/trap.h
deleted file mode 100644
index c75fa28..0000000
--- a/sys/include/arch/amd64/trap.h
+++ /dev/null
@@ -1,78 +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.
- */
-
-#ifndef _AMD64_TRAP_H_
-#define _AMD64_TRAP_H_
-
-#if !defined(__ASSEMBLER__)
-#include <sys/types.h>
-#include <machine/frame.h>
-#endif /* !defined(__ASSEMBLER__) */
-
-#define TRAP_NONE 0 /* Used for general interrupts */
-#define TRAP_BREAKPOINT 1 /* Breakpoint */
-#define TRAP_ARITH_ERR 2 /* Arithmetic error (e.g division by 0) */
-#define TRAP_OVERFLOW 3 /* Overflow */
-#define TRAP_BOUND_RANGE 4 /* BOUND range exceeded */
-#define TRAP_INVLOP 5 /* Invalid opcode */
-#define TRAP_DOUBLE_FAULT 6 /* Double fault */
-#define TRAP_INVLTSS 7 /* Invalid TSS */
-#define TRAP_SEGNP 8 /* Segment not present */
-#define TRAP_PROTFLT 9 /* General protection */
-#define TRAP_PAGEFLT 10 /* Page fault */
-#define TRAP_NMI 11 /* Non-maskable interrupt */
-#define TRAP_SS 12 /* Stack-segment fault */
-
-/* Trap is coming from user mode */
-#define TRAP_USER 0x100
-
-#if !defined(__ASSEMBLER__)
-typedef void(*ftrap_handler_t)(void);
-
-void breakpoint_handler(void *sf);
-void arith_err(void *sf);
-void overflow(void *sf);
-void bound_range(void *sf);
-void invl_op(void *sf);
-void double_fault(void *sf);
-void invl_tss(void *sf);
-void segnp(void *sf);
-void general_prot(void *sf);
-void page_fault(void *sf);
-void nmi(void *sf);
-void ss_fault(void *sf);
-void trap_handler(struct trapframe *tf);
-#else
-.macro handle_trap
- mov %rsp, %rdi
- call trap_handler
-.endm
-#endif /* !defined(__ASSEMBLER__) */
-
-#endif /* !_AMD64_TRAP_H_ */
diff --git a/sys/include/arch/amd64/tss.h b/sys/include/arch/amd64/tss.h
deleted file mode 100644
index ca0ba57..0000000
--- a/sys/include/arch/amd64/tss.h
+++ /dev/null
@@ -1,120 +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.
- */
-
-#ifndef _AMD64_TSS_H_
-#define _AMD64_TSS_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-/*
- * cpu_info is from machine/cpu.h
- *
- * XXX: machine/cpu.h includes this header
- * so we must create this as including
- * machine/cpu.h will not do anything...
- */
-struct cpu_info;
-
-/*
- * A TSS entry (64-bit)
- *
- * See Intel SDM Section 8.2.1 - Task-State Segment (TSS)
- */
-struct __packed tss_entry {
- uint32_t reserved1;
- uint32_t rsp0_lo;
- uint32_t rsp0_hi;
- uint32_t rsp1_lo;
- uint32_t rsp1_hi;
- uint32_t rsp2_lo;
- uint32_t rsp2_hi;
- uint64_t reserved2;
- uint32_t ist1_lo;
- uint32_t ist1_hi;
- uint32_t ist2_lo;
- uint32_t ist2_hi;
- uint32_t ist3_lo;
- uint32_t ist3_hi;
- uint32_t ist4_lo;
- uint32_t ist4_hi;
- uint32_t ist5_lo;
- uint32_t ist5_hi;
- uint32_t ist6_lo;
- uint32_t ist6_hi;
- uint32_t ist7_lo;
- uint32_t ist7_hi;
- uint64_t reserved3;
- uint16_t reserved4;
- uint16_t io_base;
-};
-
-/*
- * TSS descriptor (64-bit)
- *
- * The TSS descriptor describes the location
- * of the TSS segments among other things...
- *
- * See Intel SDM Section 8.2.3 - TSS Descriptor in 64-bit mode
- */
-struct __packed tss_desc {
- uint16_t seglimit;
- uint16_t base_lo16;
- uint8_t base_mid8;
- uint8_t type : 4;
- uint8_t zero : 1;
- uint8_t dpl : 2;
- uint8_t p : 1;
- uint8_t seglimit_hi : 4;
- uint8_t avl : 1;
- uint8_t unused : 2;
- uint8_t g : 1;
- uint8_t base_hi_mid8;
- uint32_t base_hi32;
- uint32_t reserved;
-};
-
-/*
- * Holds the address of the address pointing
- * to the top of an interrupt stack.
- */
-union tss_stack {
- struct {
- uint32_t top_lo;
- uint32_t top_hi;
- };
- uint64_t top;
-};
-
-int tss_alloc_stack(union tss_stack *entry_out, size_t size);
-int tss_update_ist(struct cpu_info *ci, union tss_stack stack, uint8_t istno);
-void write_tss(struct cpu_info *cpu, struct tss_desc *desc);
-void tss_load(void); /* In tss.S */
-
-#endif /* _!_AMD64_TSS_H_ */
diff --git a/sys/include/arch/amd64/uart.h b/sys/include/arch/amd64/uart.h
deleted file mode 100644
index a49e626..0000000
--- a/sys/include/arch/amd64/uart.h
+++ /dev/null
@@ -1,40 +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.
- */
-
-/* UART 8250 init logic */
-
-#ifndef _UART_H_
-#define _UART_H_
-
-#include <sys/types.h>
-
-int uart8250_try_init(void);
-void uart8250_write(char byte);
-
-#endif
diff --git a/sys/include/arch/amd64/vas.h b/sys/include/arch/amd64/vas.h
deleted file mode 100644
index b8eef89..0000000
--- a/sys/include/arch/amd64/vas.h
+++ /dev/null
@@ -1,54 +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.
- */
-
-#ifndef _AMD64_PMAP_H_
-#define _AMD64_PMAP_H_
-
-#include <sys/types.h>
-#include <sys/spinlock.h>
-
-/*
- * VAS structure - describes a virtual address space
- *
- * XXX: This structure shall exist per-process.
- *
- * TODO: As of now, VAS operations are *not* serialized!!!
- * This must change once Hyra becomes multi-threaded
- * or things will go wrong *very* quickly. Ensure of
- * this or you will suffer the consequences of undefined
- * behavior and you will not like it!
- */
-struct vas {
- size_t cr3_flags; /* CR3 flags */
- uintptr_t top_level; /* PML5 if `use_l5_paging' true, otherwise PML4 */
- bool use_l5_paging; /* True if 5-level paging is supported */
- struct spinlock lock;
-};
-
-#endif /* !_AMD64_PMAP_H_ */
diff --git a/sys/include/dev/ic/ahciregs.h b/sys/include/dev/ic/ahciregs.h
deleted file mode 100644
index b2da5b7..0000000
--- a/sys/include/dev/ic/ahciregs.h
+++ /dev/null
@@ -1,142 +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.
- */
-
-#ifndef _AHCIREGS_H_
-#define _AHCIREGS_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-struct hba_port {
- volatile uint64_t clb; /* Command list base (1k-byte aligned) */
- volatile uint64_t fb; /* FIS base (256-byte aligned) */
- volatile uint32_t is; /* Interrupt status */
- volatile uint32_t ie; /* Interrupt enable */
- volatile uint32_t cmd; /* Command and status */
- volatile uint32_t rsvd0; /* Reserved */
- volatile uint32_t tfd; /* Task file data */
- volatile uint32_t sig; /* Signature */
- volatile uint32_t ssts; /* SATA status */
- volatile uint32_t sctl; /* SATA control */
- volatile uint32_t serr; /* SATA error */
- volatile uint32_t sact; /* SATA active */
- volatile uint32_t ci; /* Command issue */
- volatile uint32_t sntf; /* SATA notification */
- volatile uint32_t fbs; /* FIS-based switch control */
- volatile uint32_t rsvd1[11];
- volatile uint32_t vendor[4];
-};
-
-struct hba_memspace {
- volatile uint32_t cap; /* Host Capabilities */
- volatile uint32_t ghc; /* Global host control */
- volatile uint32_t is; /* Interrupt status */
- volatile uint32_t pi; /* Ports implemented */
- volatile uint32_t vs; /* Version */
- volatile uint32_t ccc_ctl; /* Command completion coalescing control */
- volatile uint32_t ccc_pts; /* Command completion coalescing ports */
- volatile uint32_t em_loc; /* Enclosure management location */
- volatile uint32_t em_ctl; /* Enclosure management control */
- volatile uint32_t cap2; /* Host capabilities extended */
- volatile uint32_t bohc; /* BIOS/OS Handoff Control and Status */
- volatile uint8_t rsvd[0x74]; /* Reserved */
- volatile uint8_t vendor[0x60]; /* Vendor specific */
- struct hba_port ports[1];
-};
-
-/* Global host control bits */
-#define AHCI_GHC_AE __BIT(31) /* AHCI enable */
-#define AHCI_GHC_IE __BIT(1) /* Interrupt enable */
-#define AHCI_GHC_HR __BIT(0) /* HBA reset */
-
-/* AHCI port signatures */
-#define AHCI_SIG_ATA 0x00000101
-#define AHCI_SIG_SEMB 0xC33C0101
-#define AHCI_SIG_PM 0x96690101
-
-/*
- * Port SATA status
- * See section 3.3.10 of the AHCI spec.
- */
-#define AHCI_PXSSTS_DET(SSTS) (SSTS & 0xF)
-#define AHCI_PXSSTS_IPM(SSTS) ((SSTS >> 8) & 0xF)
-
-/*
- * Port SATA control bits
- * See section 3.3.11 of the AHCI spec.
- */
-#define AHCI_PXSCTL_DET(SCTL) (SCTL & 0xF)
-
-/*
- * Port command and status bits
- * See section 3.3.7 of the AHCI spec.
- */
-#define AHCI_PXCMD_ST __BIT(0) /* Start */
-#define AHCI_PXCMD_FRE __BIT(4) /* FIS Receive Enable */
-#define AHCI_PXCMD_FR __BIT(14) /* FIS Receive Running */
-#define AHCI_PXCMD_CR __BIT(15) /* Command List Running */
-
-/*
- * Interrupt status bits
- * See section 3.3.5 of the AHCI spec.
- */
-#define AHCI_PXIS_TFES __BIT(31)
-
-/*
- * Task file data bits
- * See section 3.3.8 of the AHCI spec.
- */
-#define AHCI_PXTFD_ERR __BIT(0)
-#define AHCI_PXTFD_DRQ __BIT(3)
-#define AHCI_PXTFD_BSY __BIT(7)
-
-/*
- * Capability bits
- * See section 3.1.1 of the AHCI spec.
- */
-#define AHCI_CAP_NP(CAP) (CAP & 0x1F) /* Number of ports */
-#define AHCI_CAP_NCS(CAP) ((CAP >> 8) & 0x1F) /* Number of command slots */
-
-/*
- * Device detection (DET) and Interface power
- * management (IPM) values
- * See section 3.3.10 of the AHCI spec.
- */
-#define AHCI_DET_NULL 0 /* No device detected */
-#define AHCI_DET_PRESENT 1 /* Device present (no PHY comm) */
-#define AHCI_DET_COMM 3 /* Device present and phy comm established */
-#define AHCI_IPM_ACTIVE 1
-
-/*
- * Device detection initialization values
- * See section 3.3.11 of the AHCI spec.
- */
-#define AHCI_DET_COMRESET 1
-
-#endif /* !_AHCIREGS_H_ */
diff --git a/sys/include/dev/ic/ahcivar.h b/sys/include/dev/ic/ahcivar.h
deleted file mode 100644
index edef4f6..0000000
--- a/sys/include/dev/ic/ahcivar.h
+++ /dev/null
@@ -1,146 +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.
- */
-
-#ifndef _AHCIVAR_H_
-#define _AHCIVAR_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-#include <sys/mutex.h>
-#include <sys/queue.h>
-#include <dev/ic/ahciregs.h>
-
-struct ata_identity {
- uint16_t rsvd0 : 1;
- uint16_t unused0 : 1;
- uint16_t incomplete : 1;
- uint16_t unused1 : 3;
- uint16_t fixed_dev : 1;
- uint16_t removable : 1;
- uint16_t unused2 : 7;
- uint16_t device_type : 1;
- uint16_t ncylinders;
- uint16_t specific_config;
- uint16_t nheads;
- uint16_t unused3[2];
- uint16_t sectors_per_track;
- uint16_t vendor[3];
- char serial_number[20];
- uint16_t unused4[2];
- uint16_t unused5;
- char firmware_rev[8];
- char model_number[40];
- char pad[256];
-};
-
-/* Physical region descriptor table entry */
-struct ahci_prdt_entry {
- uintptr_t dba; /* Data base address */
- uint32_t rsvd0; /* Reserved */
- uint32_t dbc : 22; /* Count */
- uint16_t rsvd1 : 9; /* Reserved */
- uint8_t i : 1; /* Interrupt on completion */
-};
-
-/* Command header */
-struct ahci_cmd_hdr {
- uint8_t cfl : 5; /* Command FIS length */
- uint8_t a : 1; /* ATAPI */
- uint8_t w : 1; /* Write */
- uint8_t p : 1; /* Prefetchable */
- uint8_t r : 1; /* Reset */
- uint8_t c : 1; /* Clear busy upon R_OK */
- uint8_t rsvd0 : 1; /* Reserved */
- uint8_t pmp : 4; /* Port multiplier port */
- uint16_t prdtl; /* PRDT length (in entries) */
- volatile uint32_t prdbc; /* PRDT bytes transferred count */
- uintptr_t ctba; /* Command table descriptor base addr */
- uint32_t rsvd1[4]; /* Reserved */
-};
-
-/* Command table */
-struct ahci_cmdtab {
- uint8_t cfis[64];
- uint8_t acmd[16];
- uint8_t rsvd[48];
- struct ahci_prdt_entry prdt[1];
-};
-
-struct ahci_fis_h2d {
- uint8_t type;
- uint8_t pmp : 4;
- uint8_t rsvd0 : 3;
- uint8_t c : 1;
- uint8_t command;
- uint8_t featurel;
- uint8_t lba0;
- uint8_t lba1;
- uint8_t lba2;
- uint8_t device;
- uint8_t lba3;
- uint8_t lba4;
- uint8_t lba5;
- uint8_t featureh;
- uint8_t countl;
- uint8_t counth;
- uint8_t icc;
- uint8_t control;
- uint8_t rsvd1[4];
-};
-
-struct ahci_device {
- struct ahci_hba *hba;
- struct hba_port *port;
- dev_t minor;
- TAILQ_ENTRY(ahci_device) link;
-};
-
-struct ahci_hba {
- struct hba_memspace *abar;
- struct ahci_cmd_hdr *cmdlist;
- uint32_t ncmdslots;
- uint32_t nports;
-};
-
-/* Commands */
-#define ATA_CMD_NOP 0x00
-#define ATA_CMD_IDENTIFY 0xEC
-#define ATA_CMD_READ_DMA 0x25
-#define ATA_CMD_WRITE_DMA 0x35
-
-/* FIS types */
-#define FIS_TYPE_H2D 0x27
-#define FIS_TYPE_D2H 0x34
-
-#define AHCI_TIMEOUT 500
-#define AHCI_FIS_SIZE 256
-#define AHCI_CMDTAB_SIZE 256
-#define AHCI_CMDENTRY_SIZE 32
-
-#endif /* !_AHCIVAR_H_ */
diff --git a/sys/include/dev/ic/nvmevar.h b/sys/include/dev/ic/nvmevar.h
deleted file mode 100644
index 4a40071..0000000
--- a/sys/include/dev/ic/nvmevar.h
+++ /dev/null
@@ -1,280 +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.
- */
-
-#ifndef _IC_NVMEVAR_H_
-#define _IC_NVMEVAR_H_
-
-#include <sys/cdefs.h>
-
-/* Admin commands */
-#define NVME_OP_CREATE_IOSQ 0x01
-#define NVME_OP_CREATE_IOCQ 0x05
-#define NVME_OP_IDENTIFY 0x06
-
-/* I/O commands */
-#define NVME_OP_WRITE 0x01
-#define NVME_OP_READ 0x02
-
-/* Controller Capabilities */
-#define CAP_MPSMIN(caps) ((caps >> 48) & 0xF)
-#define CAP_MPSMAX(caps) ((caps >> 52) & 0xF)
-#define CAP_TIMEOUT(caps) ((caps >> 24) & 0xFF)
-#define CAP_STRIDE(caps) ((caps >> 32) & 0xF)
-#define CAP_MQES(caps) (caps & 0xFFFF)
-#define CAP_CSS(caps) (caps & 0xFF)
-
-/* Controller Configuration */
-#define CONFIG_EN __BIT(0)
-#define CONFIG_CSS_SHIFT 4
-#define CONFIG_IOSQES_SHIFT 16
-#define CONFIG_IOCQES_SHIFT 20
-
-#define COMMAND_SIZE 64 /* In bytes (defined by spec) */
-#define STATUS_READY(status) (status & 1)
-
-struct nvme_common_cmd {
- uint8_t opcode;
- uint8_t flags;
- uint16_t cid;
- uint32_t nsid;
- uint32_t cdw1[2];
- uint64_t metadata;
- uint64_t prp1;
- uint64_t prp2;
- uint32_t cdw2[6];
-};
-
-struct nvme_identify_cmd {
- uint8_t opcode;
- uint8_t flags;
- uint16_t cid;
- uint32_t nsid;
- uint64_t unused1;
- uint64_t unused2;
- uint64_t prp1;
- uint64_t prp2;
- uint32_t cns;
- uint32_t unused3[5];
-};
-
-/* Read/write */
-struct nvme_rw_cmd {
- uint8_t opcode;
- uint8_t flags;
- uint16_t cid;
- uint32_t nsid;
- uint64_t unused;
- uint64_t metadata;
- uint64_t prp1;
- uint64_t prp2;
- uint64_t slba;
- uint16_t len;
- uint16_t control;
- uint32_t dsmgmt;
- uint32_t ref;
- uint16_t apptag;
- uint16_t appmask;
-};
-
-/* Create I/O completion queue */
-struct nvme_create_iocq_cmd {
- uint8_t opcode;
- uint8_t flags;
- uint16_t cid;
- uint32_t unused1[5];
- uint64_t prp1;
- uint64_t unused2;
- uint16_t qid;
- uint16_t qsize;
- uint16_t qflags;
- uint16_t irqvec;
- uint64_t unused3[2];
-};
-
-struct nvme_create_iosq_cmd {
- uint8_t opcode;
- uint8_t flags;
- uint16_t cid;
- uint32_t unused1[5];
- uint64_t prp1;
- uint64_t unused2;
- uint16_t sqid;
- uint16_t qsize;
- uint16_t qflags;
- uint16_t cqid;
- uint64_t unused3[2];
-};
-
-struct nvme_cmd {
- union {
- struct nvme_identify_cmd identify;
- struct nvme_common_cmd common;
- struct nvme_create_iocq_cmd create_iocq;
- struct nvme_create_iosq_cmd create_iosq;
- struct nvme_rw_cmd rw;
- };
-};
-
-struct nvme_id {
- uint16_t vid;
- uint16_t ssvid;
- char sn[20];
- char mn[40];
- char fr[8];
- uint8_t rab;
- uint8_t ieee[3];
- uint8_t mic;
- uint8_t mdts;
- uint16_t ctrlid;
- uint32_t version;
- uint32_t unused1[43];
- uint16_t oacs;
- uint8_t acl;
- uint8_t aerl;
- uint8_t fw;
- uint8_t lpa;
- uint8_t elpe;
- uint8_t npss;
- uint8_t avscc;
- uint8_t apsta;
- uint16_t wctemp;
- uint16_t cctemp;
- uint16_t unused2[121];
- uint8_t sqes;
- uint8_t cqes;
- uint16_t unused3;
- uint32_t nn;
- uint16_t oncs;
- uint16_t fuses;
- uint8_t fna;
- uint8_t vwc;
- uint16_t awun;
- uint16_t awupf;
- uint8_t nvscc;
- uint8_t unused4;
- uint16_t acwu;
- uint16_t unused5;
- uint32_t sgls;
- uint32_t unused6[1401];
- uint8_t vs[1024];
-};
-
-/* Command completion queue entry */
-struct nvme_cq_entry {
- uint32_t res;
- uint32_t unused;
- uint16_t sqhead;
- uint16_t sqid;
- uint16_t cid;
- uint16_t status;
-};
-
-/* NVMe controller */
-struct __packed nvme_bar {
- uint64_t caps;
- uint32_t version;
- uint32_t intms; /* Interrupt mask set */
- uint32_t intmc; /* Interrupt mask clear */
- uint32_t config;
- uint32_t unused1;
- uint32_t status;
- uint32_t unused2;
- uint32_t aqa; /* Admin queue attributes */
- uint64_t asq; /* Admin submission queue */
- uint64_t acq; /* Admin completion queue */
-};
-
-struct nvme_lbaf {
- uint16_t ms; /* Number of metadata bytes per LBA */
- uint8_t ds; /* Data size */
- uint8_t rp;
-};
-
-/* Identify namespace data */
-struct nvme_id_ns {
- uint64_t size;
- uint64_t capabilities;
- uint64_t nuse;
- uint8_t features;
- uint8_t nlbaf;
- uint8_t flbas;
- uint8_t mc;
- uint8_t dpc;
- uint8_t dps;
- uint8_t nmic;
- uint8_t rescap;
- uint8_t fpi;
- uint8_t unused1;
- uint16_t nawun;
- uint16_t nawupf;
- uint16_t nacwu;
- uint16_t nabsn;
- uint16_t nabo;
- uint16_t nabspf;
- uint16_t unused2;
- uint64_t nvmcap[2];
- uint64_t unusued3[5];
- uint8_t nguid[16];
- uint8_t eui64[8];
- struct nvme_lbaf lbaf[16];
- uint64_t unused3[24];
- uint8_t vs[3712];
-};
-
-struct nvme_queue {
- struct nvme_cmd *sq; /* Submission queue */
- struct nvme_cq_entry *cq; /* Completion queue */
- uint16_t sq_head; /* Submission queue head */
- uint16_t sq_tail; /* Submission queue tail */
- uint16_t cq_head; /* Completion queue head */
- uint8_t cq_phase : 1; /* Completion queue phase bit */
- uint16_t size; /* Size in elements */
- volatile uint32_t *sq_db; /* Submission doorbell */
- volatile uint32_t *cq_db; /* Completion doorbell */
-};
-
-struct nvme_state {
- struct nvme_queue adminq;
- struct nvme_bar *bar;
- dev_t major;
-};
-
-/* NVMe namespace */
-struct nvme_ns {
- size_t nsid; /* Namespace ID */
- size_t lba_bsize; /* LBA block size */
- size_t size; /* Size in logical blocks */
- struct nvme_queue ioq; /* I/O queue */
- struct nvme_lbaf lba_fmt; /* LBA format */
- struct nvme_state *cntl; /* NVMe controller */
- dev_t dev_id;
- TAILQ_ENTRY(nvme_ns) link;
-};
-
-#endif
diff --git a/sys/include/dev/pci/pci.h b/sys/include/dev/pci/pci.h
deleted file mode 100644
index d6edf3b..0000000
--- a/sys/include/dev/pci/pci.h
+++ /dev/null
@@ -1,83 +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.
- */
-
-#ifndef _DEV_PCI_H_
-#define _DEV_PCI_H_
-
-#include <sys/syscall.h>
-#include <sys/queue.h>
-#include <sys/cdefs.h>
-#include <dev/pci/pciregs.h>
-#include <vm/vm.h>
-
-/* Lookup bits */
-#define PCI_DEVICE_ID __BIT(0)
-#define PCI_VENDOR_ID __BIT(1)
-#define PCI_CLASS __BIT(2)
-#define PCI_SUBCLASS __BIT(3)
-
-/* Base address masks for BARs */
-#define PCI_BAR_MEMMASK ~7
-#define PCI_BAR_IOMASK ~3
-
-/* Macros to fetch base address from BAR */
-#define PCI_BAR_MEMBASE(BAR) PHYS_TO_VIRT(BAR & PCI_BAR_MEMMASK)
-#define PCI_BAR_IOBASE(BAR) PHYS_TO_VIRT(BAR & PCI_BAR_IOMASK)
-
-/* For PCI lookups */
-struct pci_lookup {
- uint16_t device_id;
- uint16_t vendor_id;
- uint8_t pci_class;
- uint8_t pci_subclass;
-};
-
-struct pci_device {
- uint8_t bus;
- uint8_t slot;
- uint8_t func;
-
- uint16_t device_id;
- uint16_t vendor_id;
- uint8_t pci_class;
- uint8_t pci_subclass;
- uint8_t prog_if;
- uintptr_t bar[6];
- uint8_t irq_line;
- TAILQ_ENTRY(pci_device) link;
-};
-
-int pci_init(void);
-uint32_t pci_readl(struct pci_device *dev, uint32_t offset);
-uint32_t pci_bar_size(struct pci_device *dev, uint8_t bar);
-void pci_writel(struct pci_device *dev, uint32_t offset, uint32_t val);
-void pci_set_cmdreg(struct pci_device *dev, uint16_t bits);
-struct pci_device *pci_get_device(struct pci_lookup lookup, uint16_t lookup_type);
-
-#endif /* !_DEV_PCI_H_ */
diff --git a/sys/include/dev/pci/pciregs.h b/sys/include/dev/pci/pciregs.h
deleted file mode 100644
index 13a9fc0..0000000
--- a/sys/include/dev/pci/pciregs.h
+++ /dev/null
@@ -1,66 +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.
- */
-
-#ifndef _PCIREGS_H_
-#define _PCIREGS_H_
-
-#include <sys/cdefs.h>
-
-#define PCIREG_VENDOR_ID 0x00 /* 16 bits */
-#define PCIREG_DEVICE_ID 0x02 /* 16 bits */
-#define PCIREG_CLASSREV 0x08 /* 32 bits */
-#define PCIREG_BAR0 0x10 /* 32 bits */
-#define PCIREG_BAR1 0x14 /* 32 bits */
-#define PCIREG_BAR2 0x18 /* 32 bits */
-#define PCIREG_BAR3 0x1C /* 32 bits */
-#define PCIREG_BAR4 0x20 /* 32 bits */
-#define PCIREG_BAR5 0x24 /* 32 bits */
-#define PCIREG_IRQLINE 0x3C /* 8 bits */
-#define PCIREG_CMDSTATUS 0x04 /* command (15:0), status (31:16) */
-
-/* Macros to extract PCIREG_CLASSREV bits */
-#define PCIREG_CLASS(CLASSREV) (CLASSREV >> 24)
-#define PCIREG_SUBCLASS(CLASSREV) ((CLASSREV >> 16) & 0xFF)
-#define PCIREG_REVID(CLASSREV) (CLASSREV & 0xFF)
-#define PCIREG_PROGIF(CLASSREV) ((CLASSREV >> 8) & 0xFF)
-
-/* Macros to extract PCIREG_CMDSTATUS bits */
-#define PCIREG_COMMAND(CMDSTATUS) (CMDSTATUS & 0xFFFF)
-#define PCIREG_STATUS(CMDSTATUS) (CMDSTATUS >> 16)
-
-/* PCI command register bits */
-#define PCI_IO_SPACE __BIT(0) /* Respond to I/O space accesses */
-#define PCI_MEM_SPACE __BIT(1) /* Respond to mem space accesses */
-#define PCI_BUS_MASTERING __BIT(2) /* Enable bus mastering */
-
-/* PCI status register bits */
-#define PCI_STATUS_CAPLIST __BIT(4)
-#define PCI_STATUS_66MHZ __BIT(5)
-
-#endif /* !_PCIREGS_H_ */
diff --git a/sys/include/dev/pci/pcivar.h b/sys/include/dev/pci/pcivar.h
deleted file mode 100644
index ba45a53..0000000
--- a/sys/include/dev/pci/pcivar.h
+++ /dev/null
@@ -1,40 +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.
- */
-
-#ifndef _DEV_PCIVAR_H_
-#define _DEV_PCIVAR_H_
-
-#include <sys/types.h>
-
-enum {
- PCI_ACCESS_CAM,
- PCI_ACCESS_ECAM
-};
-
-#endif /* !_DEV_PCIVAR_H_ */
diff --git a/sys/include/dev/usb/xhciregs.h b/sys/include/dev/usb/xhciregs.h
deleted file mode 100644
index 0b07524..0000000
--- a/sys/include/dev/usb/xhciregs.h
+++ /dev/null
@@ -1,110 +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.
- */
-
-#ifndef _USB_XHCIREGS_H_
-#define _USB_XHCIREGS_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-/*
- * Host Controller Capability Registers
- *
- * See xHCI spec, section 5.3, table 5-9
- */
-struct __packed xhci_caps {
- volatile uint8_t caplength;
- volatile uint8_t reserved;
- volatile uint16_t hciversion;
- volatile uint32_t hcsparams1;
- volatile uint32_t hcsparams2;
- volatile uint32_t hcsparams3;
- volatile uint32_t hccparams1;
- volatile uint32_t dboff;
- volatile uint32_t rtsoff;
- volatile uint32_t hccparams2;
-};
-
-/*
- * Host Controller Operational Registers
- *
- * See xHCI spec, section 5.4, table 5-18
- */
-struct __packed xhci_opregs {
- volatile uint32_t usbcmd;
- volatile uint32_t usbsts;
- volatile uint32_t pagesize;
- volatile uint32_t reserved;
- volatile uint32_t reserved1;
- volatile uint32_t dnctrl;
- volatile uint64_t cmd_ring;
- volatile uint32_t reserved2[4];
- volatile uint64_t dcbaa_ptr;
- volatile uint32_t config;
-};
-
-/* USBCMD bits */
-#define USBCMD_RUN __BIT(0) /* Run/stop */
-#define USBCMD_HCRST __BIT(1) /* xHC reset */
-
-/* USBSTS bits */
-#define USBSTS_HCH __BIT(0) /* HC halted */
-
-/* CAPS.HCSPARAMS1 fields */
-#define XHCI_MAXSLOTS(HCSPARAMS1) (HCSPARAMS1 & 0xFF)
-#define XHCI_MAXPORTS(HCSPARAMS1) ((HCSPARAMS1 >> 24) & 0xFF)
-#define XHCI_ECP(HCCPARAMS1) ((HCCPARAMS1 >> 16) & 0xFFFF)
-
-/* CAPS.HCSPARAMS2 fields */
-#define XHCI_MAX_SP_HI(HCSPARAMS2) ((HCSPARAMS2 >> 25) & 0x1F)
-#define XHCI_MAX_SP_LO(HCSPARAMS2) ((HCSPARAMS2 >> 31) & 0x1F)
-
-/* PORTSC bits */
-#define XHCI_PORTSC_CCS __BIT(0) /* Current connect status */
-#define XHCI_PORTSC_PR __BIT(4) /* Port reset */
-
-/* Registers */
-#define XHCI_BASE_OFF(BASE, OFF) (void *)((uintptr_t)BASE + OFF)
-#define XHCI_CAPS(BASE) XHCI_BASE_OFF(BASE, 0)
-#define XHCI_OPBASE(BASE, CAP_LEN) XHCI_BASE_OFF(BASE, CAP_LEN)
-#define XHCI_RTS(BASE, RTSOFF) XHCI_BASE_OFF(BASE, RTSOFF)
-#define XHCI_CMD_DB(BASE, DBOFF) XHCI_BASE_OFF(BASE, DBOFF)
-
-/* Support protocol cap fields */
-#define XHCI_PROTO_ID(PROTO) (PROTO & 0xFF)
-#define XHCI_PROTO_MINOR(PROTO) ((PROTO >> 16) & 0xFF)
-#define XHCI_PROTO_MAJOR(PROTO) ((PROTO >> 24) & 0xFF)
-#define XHCI_PROTO_NEXT(PROTO) ((PROTO >> 8) & 0xFF)
-#define XHCI_PROTO_PORTOFF(PROTO2) (PROTO2 & 0xFF)
-#define XHCI_PROTO_PORTCNT(PROTO2) ((PROTO2 >> 8) & 0xFF)
-
-/* Extended cap IDs */
-#define XHCI_ECAP_PROTO 2
-
-#endif /* !_USB_XHCIREGS_H_ */
diff --git a/sys/include/dev/usb/xhcivar.h b/sys/include/dev/usb/xhcivar.h
deleted file mode 100644
index 71c1f20..0000000
--- a/sys/include/dev/usb/xhcivar.h
+++ /dev/null
@@ -1,113 +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.
- */
-
-#ifndef _USB_XHCIVAR_H_
-#define _USB_XHCIVAR_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-#include <dev/usb/xhciregs.h>
-
-#define XHCI_TIMEOUT 500 /* In ms */
-#define XHCI_CMDRING_LEN 16
-#define XHCI_EVRING_LEN 16
-#define XHCI_TRB_SIZE 16 /* In bytes */
-#define XHCI_EVENTRING_LEN XHCI_CMDRING_LEN
-#define XHCI_MAX_PROTOS 4
-
-struct xhci_nop_trb {
- uint32_t reserved;
- uint32_t reserved1;
- uint32_t reserved2;
- uint8_t cycle : 1;
- uint16_t reserved3 : 9;
- uint8_t type : 6;
- uint16_t reserved4;
-};
-
-/*
- * xHCI Transfer Request Block
- */
-struct xhci_trb {
- union {
- struct xhci_nop_trb nop;
- struct {
- uint32_t dword0;
- uint32_t dword1;
- uint32_t dword2;
- uint32_t dword3;
- };
- };
-};
-
-/*
- * USB proto (USB 2.0 or 3.0)
- */
-struct xhci_proto {
- uint8_t major; /* Revision major */
- uint8_t port_start; /* Port offset start */
- uint8_t port_count; /* Number of ports */
-};
-
-/*
- * xHCI event ring segment
- *
- * See xHCI spec, section 6.5, table 6-40
- */
-struct __packed xhci_evring_segment {
- uint64_t base;
- uint32_t size;
- uint32_t reserved;
-};
-
-/*
- * Host controller.
- */
-struct xhci_hc {
- void *base;
- uint8_t caplen;
- uint8_t maxslots;
- size_t maxports;
- size_t protocnt;
- uintptr_t *dcbaap;
- uint8_t cycle : 1;
- uint16_t cmd_ptr; /* Command ring index */
- uint16_t cmd_count; /* Command ring entry count */
- uint32_t *cmd_ring;
- uint32_t *event_ring;
- struct xhci_opregs *opregs;
- struct xhci_proto protos[XHCI_MAX_PROTOS];
- struct xhci_evring_segment *evring_seg;
-};
-
-/* TRB types */
-#define XHCI_ENABLE_SLOT 9
-#define XHCI_LINK 6
-
-#endif /* !_USB_XHCIVAR_H_ */
diff --git a/sys/include/dev/vcons/vcons.h b/sys/include/dev/vcons/vcons.h
deleted file mode 100644
index 492940f..0000000
--- a/sys/include/dev/vcons/vcons.h
+++ /dev/null
@@ -1,72 +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.
- */
-
-#ifndef _DEV_VCONS_H_
-#define _DEV_VCONS_H_
-
-#include <sys/types.h>
-#include <sys/termios.h>
-#include <dev/video/fbdev.h>
-#include <sysfont.h>
-
-#define VCONS_TAB_WIDTH 4
-#define VCONS_CURSOR_WIDTH FONT_WIDTH
-#define VCONS_CURSOR_HEIGHT FONT_HEIGHT
-
-struct vcons_cursor {
- size_t xpos, ypos;
- uint32_t rgb;
-
- /* Internal */
- uint32_t old_xpos, old_ypos;
- volatile bool is_drawing;
- volatile bool is_drawn; /* If it has been drawn before */
-};
-
-struct vcons_screen {
- size_t nrows, ncols;
- size_t cpy_x, cpy_y; /* In chars */
- size_t cpy_len;
-
- uint32_t bg;
- uint32_t fg;
- void *fbdev_mem;
-
- struct fbdev fbdev;
- struct vcons_cursor cursor;
-};
-
-#define is_cursor_drawing(screenptr) (screenptr)->cursor.is_drawing
-
-void vcons_attach(struct vcons_screen *scr);
-int vcons_putch(struct vcons_screen *scr, char c);
-int vcons_putstr(struct vcons_screen *scr, const char *s, size_t len);
-void vcons_update_cursor(struct vcons_screen *scr);
-
-#endif /* !_DEV_VCONS_H_ */
diff --git a/sys/include/dev/vcons/vcons_io.h b/sys/include/dev/vcons/vcons_io.h
deleted file mode 100644
index a75d811..0000000
--- a/sys/include/dev/vcons/vcons_io.h
+++ /dev/null
@@ -1,37 +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.
- */
-
-#ifndef _VCONS_IO_H_
-#define _VCONS_IO_H_
-
-#include <dev/vcons/vcons.h>
-
-int vcons_process_output(struct vcons_screen *scr, int c);
-
-#endif /* !_VCONS_IO_H_ */
diff --git a/sys/include/dev/video/fbdev.h b/sys/include/dev/video/fbdev.h
deleted file mode 100644
index 5ad6bf6..0000000
--- a/sys/include/dev/video/fbdev.h
+++ /dev/null
@@ -1,51 +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.
- */
-
-#ifndef _FBDEV_H_
-#define _FBDEV_H_
-
-#include <sys/types.h>
-#include <sys/fbdev.h>
-
-struct fbdev {
- void *mem;
- uint32_t width;
- uint32_t height;
- uint32_t pitch;
-};
-
-static inline size_t
-fbdev_get_index(const struct fbdev *fbdev, uint32_t x, uint32_t y)
-{
- return x + y * (fbdev->pitch/4);
-}
-
-struct fbdev fbdev_get_front(void);
-
-#endif /* !_FBDEV_H_ */
diff --git a/sys/include/firmware/acpi/acpi.h b/sys/include/firmware/acpi/acpi.h
deleted file mode 100644
index 66a955f..0000000
--- a/sys/include/firmware/acpi/acpi.h
+++ /dev/null
@@ -1,46 +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.
- */
-
-#ifndef _ACPI_ACPI_H_
-#define _ACPI_ACPI_H_
-
-#include <firmware/acpi/tables.h>
-#include <machine/cpu.h>
-#include <sys/types.h>
-
-void acpi_init(void);
-uint32_t irq_to_gsi(uint8_t irq);
-void *acpi_query(const char *query);
-bool acpi_is_checksum_valid(struct acpi_header *hdr);
-struct acpi_root_sdt *acpi_get_root_sdt(void);
-size_t acpi_get_root_sdt_len(void);
-void acpi_parse_madt(struct cpu_info *ci);
-void *acpi_get_lapic_base(void);
-
-#endif /* !_ACPI_ACPI_H_ */
diff --git a/sys/include/firmware/acpi/tables.h b/sys/include/firmware/acpi/tables.h
deleted file mode 100644
index 32fef09..0000000
--- a/sys/include/firmware/acpi/tables.h
+++ /dev/null
@@ -1,130 +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.
- */
-
-#ifndef _ACPI_TABLES_H_
-#define _ACPI_TABLES_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-#define OEMID_SIZE 6
-
-struct __packed acpi_header {
- char signature[4]; /* ASCII signature string */
- uint32_t length; /* Length of table in bytes */
- uint8_t revision; /* Revision of the structure */
- uint8_t checksum; /* Checksum of the header */
- char oemid[OEMID_SIZE]; /* OEM-supplied string that IDs the OEM */
- char oem_table_id[8]; /* OEM-supplied string (used by OEM) */
- uint32_t oem_revision; /* OEM-supplied revision number */
- uint32_t creator_id; /* Vendor ID of creator utility */
- uint32_t creator_revision; /* Revision of creator utility */
-};
-
-struct __packed acpi_rsdp {
- uint64_t signature; /* RSD PTR */
- uint8_t checksum; /* Structure checksum */
- char oemid[OEMID_SIZE]; /* OEM-supplied string that IDs the OEM */
- uint8_t revision; /* Revision of the structure */
- uint32_t rsdt_addr; /* RSDT physical address */
-
- /* Reserved if revision < 2 */
- uint32_t length; /* Length of table in bytes */
- uint64_t xsdt_addr; /* XSDT physical address */
- uint8_t ext_checksum; /* Extended checksum */
- uint8_t reserved[3];
-};
-
-/*
- * XSDT or RSDT depending
- * on what revision the header
- * says.
- */
-struct __packed acpi_root_sdt {
- struct acpi_header hdr;
- uint32_t tables[];
-};
-
-struct __packed acpi_madt {
- struct acpi_header hdr;
- uint32_t lapic_addr;
- uint32_t flags;
-};
-
-struct __packed apic_header {
- uint8_t type;
- uint8_t length;
-};
-
-struct __packed local_apic {
- struct apic_header hdr;
- uint8_t processor_id;
- uint8_t apic_id;
- uint32_t flags;
-};
-
-struct __packed ioapic {
- struct apic_header hdr;
- uint8_t ioapic_id;
- uint8_t reserved;
- uint32_t ioapic_addr;
- uint32_t gsi_base;
-};
-
-struct __packed interrupt_override {
- struct apic_header hdr;
- uint8_t bus;
- uint8_t source; /* IRQ */
- uint32_t interrupt; /* GSI */
- uint16_t flags;
-};
-
-struct __packed acpi_gas {
- uint8_t address_space_id;
- uint8_t register_bit_width;
- uint8_t register_bit_offset;
- uint8_t reserved;
- uint64_t address;
-};
-
-struct __packed hpet {
- struct acpi_header hdr;
- uint8_t hardware_rev_id;
- uint8_t comparator_count : 5;
- uint8_t counter_size : 1;
- uint8_t reserved : 1;
- uint8_t legacy_replacement : 1;
- uint16_t pci_vendor_id;
- struct acpi_gas gas;
- uint8_t hpet_number;
- uint16_t minimum_tick;
- uint8_t page_protection;
-};
-
-#endif /* !_ACPI_TABLES_H_ */
diff --git a/sys/include/fs/devfs.h b/sys/include/fs/devfs.h
deleted file mode 100644
index 66128ef..0000000
--- a/sys/include/fs/devfs.h
+++ /dev/null
@@ -1,42 +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.
- */
-
-#ifndef _FS_DEVFS_H_
-#define _FS_DEVFS_H_
-
-#include <sys/vnode.h>
-#include <sys/device.h>
-
-extern struct vfsops g_devfs_ops;
-extern struct vops g_devfs_vops;
-
-int devfs_add_dev(const char *name, const struct device *dev);
-int devfs_get_dev(struct vnode *vp, struct device **res);
-
-#endif
diff --git a/sys/include/fs/initramfs.h b/sys/include/fs/initramfs.h
deleted file mode 100644
index 223e962..0000000
--- a/sys/include/fs/initramfs.h
+++ /dev/null
@@ -1,41 +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.
- */
-
-#ifndef _FS_INITRAMFS_H_
-#define _FS_INITRAMFS_H_
-
-#include <sys/mount.h>
-#include <sys/vnode.h>
-
-extern struct vfsops g_initramfs_ops;
-extern struct vops g_initramfs_vops;
-
-const char *initramfs_open(const char *path);
-
-#endif /* !_FS_INITRAMFS_H_ */
diff --git a/sys/include/fs/procfs.h b/sys/include/fs/procfs.h
deleted file mode 100644
index ed3a19f..0000000
--- a/sys/include/fs/procfs.h
+++ /dev/null
@@ -1,51 +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.
- */
-
-#ifndef _PROCFS_H_
-#define _PROCFS_H_
-
-#include <sys/types.h>
-#include <sys/mount.h>
-#include <sys/sio.h>
-
-struct proc_entry {
- int(*read)(struct proc_entry *p, struct sio_txn *sio);
- int(*write)(struct proc_entry *p, struct sio_txn *sio);
-};
-
-extern struct vfsops g_procfs_ops;
-extern struct vops g_procfs_vops;
-
-int procfs_add_entry(const char *name, struct proc_entry *entry);
-struct proc_entry *procfs_alloc_entry(void);
-
-/* procfs_subr.c */
-void procfs_populate(void);
-
-#endif /* !_PROCFS_H_ */
diff --git a/sys/include/lib/assert.h b/sys/include/lib/assert.h
deleted file mode 100644
index 78ebe05..0000000
--- a/sys/include/lib/assert.h
+++ /dev/null
@@ -1,42 +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.
- */
-
-#ifndef _LIB_ASSERT_H_
-#define _LIB_ASSERT_H_
-
-#include <sys/panic.h>
-#include <sys/types.h>
-
-#define __assert(condition) \
- if ((uintptr_t)(condition) == 0) { \
- panic("Assert \"%s\" failed (%s() at %s:%d)\n", #condition, \
- __func__, __FILE__, __LINE__); \
- }
-
-#endif /* !_LIB_ASSERT_H_ */
diff --git a/sys/include/lib/bitmap.h b/sys/include/lib/bitmap.h
deleted file mode 100644
index da900a2..0000000
--- a/sys/include/lib/bitmap.h
+++ /dev/null
@@ -1,56 +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.
- */
-
-#ifndef _LIB_BITMAP_H_
-#define _LIB_BITMAP_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-
-typedef uint8_t *bitmap_t;
-
-static inline void
-bitmap_set_bit(bitmap_t bitmap, size_t bit)
-{
- bitmap[bit / 8] |= __BIT(bit % 8);
-}
-
-static inline void
-bitmap_unset_bit(bitmap_t bitmap, size_t bit)
-{
- bitmap[bit / 8] &= ~(__BIT(bit % 8));
-}
-
-static inline bool
-bitmap_test_bit(bitmap_t bitmap, size_t bit)
-{
- return __TEST(bitmap[bit / 8], __BIT(bit % 8));
-}
-
-#endif /* !_LIB_BITMAP_H_ */
diff --git a/sys/include/lib/logo.h b/sys/include/lib/logo.h
deleted file mode 100644
index c33d3d2..0000000
--- a/sys/include/lib/logo.h
+++ /dev/null
@@ -1,39 +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.
- */
-
-#include <sys/types.h>
-#include <sys/syslog.h>
-
-#define COPYRIGHT "Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team."
-
-#define PRINT_LOGO() \
- kprintf(OMIT_TIMESTAMP "%s v%s\n\n", g_logo, HYRA_VERSION); \
- kprintf(OMIT_TIMESTAMP "\t%s\n\n", COPYRIGHT);
-
-extern uint8_t g_logo[];
diff --git a/sys/include/lib/stdarg.h b/sys/include/lib/stdarg.h
deleted file mode 100644
index 5a3d67d..0000000
--- a/sys/include/lib/stdarg.h
+++ /dev/null
@@ -1,44 +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.
- */
-
-#ifndef _LIB_STDARG_H_
-#define _LIB_STDARG_H_
-
-#ifndef __GNUC_VA_LIST
-#define __GNUC_VA_LIST
-typedef __builtin_va_list __gnuc_va_list;
-#endif /* __GNUC_VA_LIST */
-
-typedef __gnuc_va_list va_list;
-
-#define va_start(ap, last) __builtin_va_start((ap), last)
-#define va_end(ap) __builtin_va_end((ap))
-#define va_arg(ap, type) __builtin_va_arg((ap), type)
-
-#endif /* !_LIB_STDARG_H_ */
diff --git a/sys/include/lib/string.h b/sys/include/lib/string.h
deleted file mode 100644
index f4ee93d..0000000
--- a/sys/include/lib/string.h
+++ /dev/null
@@ -1,48 +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.
- */
-
-#ifndef _LIB_STRING_H_
-#define _LIB_STRING_H_
-
-#include <sys/types.h>
-#include <stdarg.h>
-
-size_t strlen(const char *s);
-char *itoa(int64_t value, char *buf, int base);
-void *memmove(void *s1, const void *s2, size_t n);
-void *memcpy(void *dest, const void *src, size_t n);
-void *memcpy32(void *dest, const void *src, size_t n);
-void *memset(void *s, int c, size_t n);
-void *memset64(void *s, int c, size_t n);
-int memcmp(const void *s1, const void *s2, size_t n);
-int strcmp(const char *s1, const char *s2);
-int vsnprintf(char *s, size_t size, const char *fmt, va_list ap);
-int snprintf(char *s, size_t size, const char *fmt, ...);
-
-#endif /* !_LIB_STRING_H_ */
diff --git a/sys/include/lib/sysfont.h b/sys/include/lib/sysfont.h
deleted file mode 100644
index 62b4ec0..0000000
--- a/sys/include/lib/sysfont.h
+++ /dev/null
@@ -1,40 +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.
- */
-
-#ifndef _LIB_TTY_FONT_H_
-#define _LIB_TTY_FONT_H_
-
-#include <sys/types.h>
-
-#define FONT_WIDTH 8
-#define FONT_HEIGHT 16
-
-extern const uint8_t DEFAULT_FONT_DATA[];
-
-#endif /* !_LIB_TTY_FONT_H_ */
diff --git a/sys/include/sys/ascii.h b/sys/include/sys/ascii.h
deleted file mode 100644
index 2421c8c..0000000
--- a/sys/include/sys/ascii.h
+++ /dev/null
@@ -1,45 +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.
- */
-
-#ifndef _SYS_ASCII_H_
-#define _SYS_ASCII_H_
-
-#define ASCII_NUL 0x00 /* Nul */
-#define ASCII_BEL 0x07 /* Bell */
-#define ASCII_BS 0x08 /* Backspace */
-#define ASCII_HT 0x09 /* Horizontal tab */
-#define ASCII_LF 0x0A /* Line feed */
-#define ASCII_VT 0x0B /* Vertical tab */
-#define ASCII_FF 0x0C /* Form feed */
-#define ASCII_CR 0x0D /* Carriage return */
-#define ASCII_SO 0x0E /* Shift out */
-#define ASCII_SI 0x0F /* Shift in */
-#define ASCII_ESC 0x1B /* Escape */
-
-#endif
diff --git a/sys/include/sys/cdefs.h b/sys/include/sys/cdefs.h
deleted file mode 100644
index 110205b..0000000
--- a/sys/include/sys/cdefs.h
+++ /dev/null
@@ -1,182 +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.
- */
-
-#ifndef _SYS_CDEFS_H_
-#define _SYS_CDEFS_H_
-
-#if !defined(__ASSEMBLER__)
-
-/* Misc helpers */
-#define __attr(x) __attribute__((x))
-#define __weak __attr(weak)
-#define __used __attr(used)
-#define __naked __attr(naked)
-#define __noreturn __attr(noreturn)
-
-#define __likely(x) __builtin_expect(!!(x), 1)
-#define __unlikely(x) __builtin_expect(!!(x), 0)
-
-/* Wrapper for inline asm */
-#define __ASMV __asm__ __volatile__
-
-/* Pack a structure */
-#define __packed __attribute__((__packed__))
-
-/* Align by `n` */
-#define __aligned(n) __attribute__((__aligned__(n)))
-
-/*
- * Align to a cacheline-boundary which is
- * typically 64 bytes.
- *
- * XXX: Should probably deal with the case of the
- * cacheline alignment boundary not being 64 bytes.
- */
-#define __cacheline_aligned __aligned(64)
-
-/*
- * Memory barrier, ensure compiler doesn't reorder
- * memory accesses.
- */
-#define __mem_barrier() __ASMV("" ::: "memory")
-
-/*
- * To be used when an empty body is required like:
- *
- * #ifdef DEBUG
- * #define dprintf(a) printf(a)
- * #else
- * #define dprintf(a) __nothing
- * #endif
- */
-#define __nothing ((void)0)
-
-/* __BIT(n): Set nth bit, where __BIT(0) == 0x1 */
-#define __BIT(n) (1ULL << n)
-
-/* MASK(n): Sets first n bits, where __MASK(2) == 0b11 */
-#define __MASK(n) (__BIT(n) - 1)
-
-/* Max/min helpers */
-#define __MIN(a, b) ((a <= b) ? (a) : (b))
-#define __MAX(a, b) ((a >= b) ? (a) : (b))
-
-/* Aligns up/down a value */
-#define __ALIGN_DOWN(value, align) ((value) & ~((align)-1))
-#define __ALIGN_UP(value, align) (((value) + (align)-1) & ~((align)-1))
-
-/* Rounds up and divides */
-#define __DIV_ROUNDUP(value, div) __extension__ ({ \
- __auto_type __val = value; \
- __auto_type __div = div; \
- (__val + (__div - 1)) / __div; \
-})
-
-/* Find least significant bit that is set */
-#define __LOWEST_SET_BIT(mask) ((((mask) - 1) & (mask)) ^ (mask))
-
-/* Extract value with `mask` from `x` */
-#define __SHIFTOUT(x, mask) (((x) & (mask)) / __LOWEST_SET_BIT(mask))
-
-/* Test if bits are set, where __TEST(0b1111, 0xF) == 1 */
-#define __TEST(a, mask) (__SHIFTOUT(a, mask) != 0)
-
-/* Return the number of elements within an array */
-#define __ARRAY_COUNT(x) (sizeof(x) / sizeof(x[0]))
-
-/* Suppress `variable set but not used' warnings */
-#define __USE(x) ((void)(x))
-
-/* A cleaner wrapper over _Static_assert() */
-#define __STATIC_ASSERT _Static_assert
-
-/* Computes 2^x i.e 2 to the power of 'x' */
-#define __POW2(x) (1ULL << x)
-
-/* Combine two 8-bit values into a 16-bit value */
-#define __COMBINE8(HI, LO) ((uint16_t)((uint16_t)HI << 8) | LO)
-
-/* Combine two 16-bit values into a 32-bit value */
-#define __COMBINE16(HI, LO) ((uint32_t)((uint32_t)HI << 16) | LO)
-
-/* Combine two 32-bit values into a 64-bit value */
-#define __COMBINE32(HI, LO) ((uint64_t)((uint64_t)HI << 32) | LO)
-
-/*
- * Used to give metadata to
- * a specific module. Example
- * metadata string:
- *
- * $Hyra$: module.c, Programmer Bob, A module that does stuff and things
- * ~~~~~~ ~~~~~~~~ ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- * Cookie; Module Author of this A short description
- * always name module
- * first
- *
- * Example usage:
- *
- * __KERNEL_META("$Hyra$: module.c, Programmer Bob, "
- * "A module that does stuff and things");
- *
- * The above is the preferred style for this
- * macro.
- */
-#define __KERNEL_META(meta_str) \
- __asm__(".section .meta.note\n" \
- ".align 4\n" \
- ".string \"" meta_str "\"\n" \
- ".previous" \
- )
-
-#define __MODULE_NAME(name) \
- __used static const char *__THIS_MODULE = name
-
-/*
- * Attempts to call a __weak function. Does nothing
- * if routine not implemented.
- */
-#define __TRY_CALL(routine, ...) \
- if (routine != NULL) routine(__VA_ARGS__)
-
-#else
-
-/*
- * XXX: Will work; however, maybe move this??
- */
-#if defined(__x86_64__)
-.macro __KERNEL_META meta_str
- .section .meta.note
- .align 4
- .string "\meta_str"
- .previous
-.endm
-#endif /* defined(__x86_64__) */
-
-#endif /* !defined(__ASSEMBLER__) */
-#endif /* !_SYS_CDEFS_H_ */
diff --git a/sys/include/sys/cpu.h b/sys/include/sys/cpu.h
deleted file mode 100644
index f22cba4..0000000
--- a/sys/include/sys/cpu.h
+++ /dev/null
@@ -1,41 +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.
- */
-
-#ifndef _SYS_CPU_H_
-#define _SYS_CPU_H_
-
-#include <machine/cpu.h>
-
-#define cpu_index(ci) ci->idx
-
-size_t cpu_count(void);
-void cpu_attach(struct cpu_info *ci);
-struct cpu_info *cpu_get(size_t i);
-
-#endif /* !_SYS_CPU_H_ */
diff --git a/sys/include/sys/device.h b/sys/include/sys/device.h
deleted file mode 100644
index 1bca4a8..0000000
--- a/sys/include/sys/device.h
+++ /dev/null
@@ -1,68 +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.
- */
-
-#ifndef _SYS_DEVICE_H_
-#define _SYS_DEVICE_H_
-
-#include <sys/sio.h>
-#include <sys/queue.h>
-#include <sys/types.h>
-#include <string.h>
-#include <vm/dynalloc.h>
-
-struct device {
- dev_t major, minor;
- size_t blocksize;
- int(*write)(struct device *dev, struct sio_txn *sio);
- int(*read)(struct device *dev, struct sio_txn *sio);
- int(*ioctl)(struct device *dev, uint32_t cmd, uintptr_t arg);
- int(*open)(struct device *dev);
- int(*close)(struct device *dev);
- paddr_t(*mmap)(struct device *dev, off_t off, vm_prot_t prot);
- TAILQ_ENTRY(device) link;
-};
-
-static inline struct device *
-device_alloc(void)
-{
- struct device *dev;
-
- dev = dynalloc(sizeof(struct device));
- if (dev == NULL)
- return dev;
-
- memset(dev, 0, sizeof(struct device));
- return dev;
-}
-
-struct device *device_fetch(dev_t major, dev_t minor);
-dev_t device_alloc_major(void);
-dev_t device_create(struct device *dev, dev_t major, dev_t minor);
-
-#endif
diff --git a/sys/include/sys/driver.h b/sys/include/sys/driver.h
deleted file mode 100644
index 415f4e2..0000000
--- a/sys/include/sys/driver.h
+++ /dev/null
@@ -1,57 +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.
- */
-
-#ifndef _SYS_DRIVER_H_
-#define _SYS_DRIVER_H_
-
-#include <sys/cdefs.h>
-
-#if defined(_KERNEL)
-
-struct driver {
- int(*init)(void);
-};
-
-extern char __drivers_init_start[];
-extern char __drivers_init_end[];
-
-#define DRIVER_EXPORT(INIT) \
- __attribute__((used, section(".drivers"))) \
- static struct driver __driver_desc = { \
- .init = INIT, \
- }
-
-#define DRIVERS_INIT() \
- for (struct driver *__d = (struct driver *)__drivers_init_start; \
- (uintptr_t)__d < (uintptr_t)__drivers_init_end; ++__d) \
- { \
- __d->init(); \
- }
-#endif
-#endif /* !_SYS_DRIVER_H_ */
diff --git a/sys/include/sys/elf.h b/sys/include/sys/elf.h
deleted file mode 100644
index af2d65a..0000000
--- a/sys/include/sys/elf.h
+++ /dev/null
@@ -1,499 +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.
- */
-
-#ifndef _SYS_ELF_H_
-#define _SYS_ELF_H_
-
-#include <sys/types.h>
-
-/* Type for a 16-bit quantity. */
-typedef uint16_t Elf32_Half;
-typedef uint16_t Elf64_Half;
-
-/* Types for signed and unsigned 32-bit quantities. */
-typedef uint32_t Elf32_Word;
-typedef int32_t Elf32_Sword;
-typedef uint32_t Elf64_Word;
-typedef int32_t Elf64_Sword;
-
-/* Types for signed and unsigned 64-bit quantities. */
-typedef uint64_t Elf32_Xword;
-typedef int64_t Elf32_Sxword;
-typedef uint64_t Elf64_Xword;
-typedef int64_t Elf64_Sxword;
-
-/* Type of addresses. */
-typedef uint32_t Elf32_Addr;
-typedef uint64_t Elf64_Addr;
-
-/* Type of file offsets. */
-typedef uint32_t Elf32_Off;
-typedef uint64_t Elf64_Off;
-
-/* Type for section indices, which are 16-bit quantities. */
-typedef uint16_t Elf32_Section;
-typedef uint16_t Elf64_Section;
-
-/* Type for version symbol information. */
-typedef Elf32_Half Elf32_Versym;
-typedef Elf64_Half Elf64_Versym;
-
-#define EI_MAG0 0 /* File identification byte 0 index */
-#define ELFMAG0 0x7f /* Magic number byte 0 */
-
-#define EI_MAG1 1 /* File identification byte 1 index */
-#define ELFMAG1 'E' /* Magic number byte 1 */
-
-#define EI_MAG2 2 /* File identification byte 2 index */
-#define ELFMAG2 'L' /* Magic number byte 2 */
-
-#define EI_MAG3 3 /* File identification byte 3 index */
-#define ELFMAG3 'F' /* Magic number byte 3 */
-
-/* Conglomeration of the identification bytes, for easy testing as a word. */
-#define ELFMAG "\177ELF"
-#define SELFMAG 4
-
-#define EI_CLASS 4 /* File class byte index */
-#define ELFCLASSNONE 0 /* Invalid class */
-#define ELFCLASS32 1 /* 32-bit objects */
-#define ELFCLASS64 2 /* 64-bit objects */
-#define ELFCLASSNUM 3
-
-#define EI_DATA 5 /* Data encoding byte index */
-#define ELFDATANONE 0 /* Invalid data encoding */
-#define ELFDATA2LSB 1 /* 2's complement, little endian */
-#define ELFDATA2MSB 2 /* 2's complement, big endian */
-#define ELFDATANUM 3
-
-#define EI_VERSION 6 /* File version byte index */
- /* Value must be EV_CURRENT */
-
-#define EI_OSABI 7 /* OS ABI identification */
-#define ELFOSABI_NONE 0 /* UNIX System V ABI */
-#define ELFOSABI_SYSV 0 /* Alias. */
-#define ELFOSABI_HPUX 1 /* HP-UX */
-#define ELFOSABI_NETBSD 2 /* NetBSD. */
-#define ELFOSABI_GNU 3 /* Object uses GNU ELF extensions. */
-#define ELFOSABI_LINUX ELFOSABI_GNU /* Compatibility alias. */
-#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */
-#define ELFOSABI_AIX 7 /* IBM AIX. */
-#define ELFOSABI_IRIX 8 /* SGI Irix. */
-#define ELFOSABI_FREEBSD 9 /* FreeBSD. */
-#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */
-#define ELFOSABI_MODESTO 11 /* Novell Modesto. */
-#define ELFOSABI_OPENBSD 12 /* OpenBSD. */
-#define ELFOSABI_ARM_AEABI 64 /* ARM EABI */
-#define ELFOSABI_ARM 97 /* ARM */
-#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
-
-#define EI_ABIVERSION 8 /* ABI version */
-
-#define EI_PAD 9 /* Byte index of padding bytes */
-
-/* Legal values for e_type (object file type). */
-
-#define ET_NONE 0 /* No file type */
-#define ET_REL 1 /* Relocatable file */
-#define ET_EXEC 2 /* Executable file */
-#define ET_DYN 3 /* Shared object file */
-#define ET_CORE 4 /* Core file */
-#define ET_NUM 5 /* Number of defined types */
-#define ET_LOOS 0xfe00 /* OS-specific range start */
-#define ET_HIOS 0xfeff /* OS-specific range end */
-#define ET_LOPROC 0xff00 /* Processor-specific range start */
-#define ET_HIPROC 0xffff /* Processor-specific range end */
-
-/* Legal values for e_machine (architecture). */
-
-#define EM_NONE 0 /* No machine */
-#define EM_M32 1 /* AT&T WE 32100 */
-#define EM_SPARC 2 /* SUN SPARC */
-#define EM_386 3 /* Intel 80386 */
-#define EM_68K 4 /* Motorola m68k family */
-#define EM_88K 5 /* Motorola m88k family */
-#define EM_IAMCU 6 /* Intel MCU */
-#define EM_860 7 /* Intel 80860 */
-#define EM_MIPS 8 /* MIPS R3000 big-endian */
-#define EM_S370 9 /* IBM System/370 */
-#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */
- /* reserved 11-14 */
-#define EM_PARISC 15 /* HPPA */
- /* reserved 16 */
-#define EM_VPP500 17 /* Fujitsu VPP500 */
-#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */
-#define EM_960 19 /* Intel 80960 */
-#define EM_PPC 20 /* PowerPC */
-#define EM_PPC64 21 /* PowerPC 64-bit */
-#define EM_S390 22 /* IBM S390 */
-#define EM_SPU 23 /* IBM SPU/SPC */
- /* reserved 24-35 */
-#define EM_V800 36 /* NEC V800 series */
-#define EM_FR20 37 /* Fujitsu FR20 */
-#define EM_RH32 38 /* TRW RH-32 */
-#define EM_RCE 39 /* Motorola RCE */
-#define EM_ARM 40 /* ARM */
-#define EM_FAKE_ALPHA 41 /* Digital Alpha */
-#define EM_SH 42 /* Hitachi SH */
-#define EM_SPARCV9 43 /* SPARC v9 64-bit */
-#define EM_TRICORE 44 /* Siemens Tricore */
-#define EM_ARC 45 /* Argonaut RISC Core */
-#define EM_H8_300 46 /* Hitachi H8/300 */
-#define EM_H8_300H 47 /* Hitachi H8/300H */
-#define EM_H8S 48 /* Hitachi H8S */
-#define EM_H8_500 49 /* Hitachi H8/500 */
-#define EM_IA_64 50 /* Intel Merced */
-#define EM_MIPS_X 51 /* Stanford MIPS-X */
-#define EM_COLDFIRE 52 /* Motorola Coldfire */
-#define EM_68HC12 53 /* Motorola M68HC12 */
-#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator */
-#define EM_PCP 55 /* Siemens PCP */
-#define EM_NCPU 56 /* Sony nCPU embeeded RISC */
-#define EM_NDR1 57 /* Denso NDR1 microprocessor */
-#define EM_STARCORE 58 /* Motorola Start*Core processor */
-#define EM_ME16 59 /* Toyota ME16 processor */
-#define EM_ST100 60 /* STMicroelectronic ST100 processor */
-#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam */
-#define EM_X86_64 62 /* AMD x86-64 architecture */
-#define EM_PDSP 63 /* Sony DSP Processor */
-#define EM_PDP10 64 /* Digital PDP-10 */
-#define EM_PDP11 65 /* Digital PDP-11 */
-#define EM_FX66 66 /* Siemens FX66 microcontroller */
-#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */
-#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */
-#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */
-#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */
-#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */
-#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */
-#define EM_SVX 73 /* Silicon Graphics SVx */
-#define EM_ST19 74 /* STMicroelectronics ST19 8 bit mc */
-#define EM_VAX 75 /* Digital VAX */
-#define EM_CRIS 76 /* Axis Communications 32-bit emb.proc */
-#define EM_JAVELIN 77 /* Infineon Technologies 32-bit emb.proc */
-#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */
-#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */
-#define EM_MMIX 80 /* Donald Knuth's educational 64-bit proc */
-#define EM_HUANY 81 /* Harvard University machine-independent object files */
-#define EM_PRISM 82 /* SiTera Prism */
-#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
-#define EM_FR30 84 /* Fujitsu FR30 */
-#define EM_D10V 85 /* Mitsubishi D10V */
-#define EM_D30V 86 /* Mitsubishi D30V */
-#define EM_V850 87 /* NEC v850 */
-#define EM_M32R 88 /* Mitsubishi M32R */
-#define EM_MN10300 89 /* Matsushita MN10300 */
-#define EM_MN10200 90 /* Matsushita MN10200 */
-#define EM_PJ 91 /* picoJava */
-#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
-#define EM_ARC_COMPACT 93 /* ARC International ARCompact */
-#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
-#define EM_VIDEOCORE 95 /* Alphamosaic VideoCore */
-#define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose Proc */
-#define EM_NS32K 97 /* National Semi. 32000 */
-#define EM_TPC 98 /* Tenor Network TPC */
-#define EM_SNP1K 99 /* Trebia SNP 1000 */
-#define EM_ST200 100 /* STMicroelectronics ST200 */
-#define EM_IP2K 101 /* Ubicom IP2xxx */
-#define EM_MAX 102 /* MAX processor */
-#define EM_CR 103 /* National Semi. CompactRISC */
-#define EM_F2MC16 104 /* Fujitsu F2MC16 */
-#define EM_MSP430 105 /* Texas Instruments msp430 */
-#define EM_BLACKFIN 106 /* Analog Devices Blackfin DSP */
-#define EM_SE_C33 107 /* Seiko Epson S1C33 family */
-#define EM_SEP 108 /* Sharp embedded microprocessor */
-#define EM_ARCA 109 /* Arca RISC */
-#define EM_UNICORE 110 /* PKU-Unity & MPRC Peking Uni. mc series */
-#define EM_EXCESS 111 /* eXcess configurable cpu */
-#define EM_DXP 112 /* Icera Semi. Deep Execution Processor */
-#define EM_ALTERA_NIOS2 113 /* Altera Nios II */
-#define EM_CRX 114 /* National Semi. CompactRISC CRX */
-#define EM_XGATE 115 /* Motorola XGATE */
-#define EM_C166 116 /* Infineon C16x/XC16x */
-#define EM_M16C 117 /* Renesas M16C */
-#define EM_DSPIC30F 118 /* Microchip Technology dsPIC30F */
-#define EM_CE 119 /* Freescale Communication Engine RISC */
-#define EM_M32C 120 /* Renesas M32C */
- /* reserved 121-130 */
-#define EM_TSK3000 131 /* Altium TSK3000 */
-#define EM_RS08 132 /* Freescale RS08 */
-#define EM_SHARC 133 /* Analog Devices SHARC family */
-#define EM_ECOG2 134 /* Cyan Technology eCOG2 */
-#define EM_SCORE7 135 /* Sunplus S+core7 RISC */
-#define EM_DSP24 136 /* New Japan Radio (NJR) 24-bit DSP */
-#define EM_VIDEOCORE3 137 /* Broadcom VideoCore III */
-#define EM_LATTICEMICO32 138 /* RISC for Lattice FPGA */
-#define EM_SE_C17 139 /* Seiko Epson C17 */
-#define EM_TI_C6000 140 /* Texas Instruments TMS320C6000 DSP */
-#define EM_TI_C2000 141 /* Texas Instruments TMS320C2000 DSP */
-#define EM_TI_C5500 142 /* Texas Instruments TMS320C55x DSP */
-#define EM_TI_ARP32 143 /* Texas Instruments App. Specific RISC */
-#define EM_TI_PRU 144 /* Texas Instruments Prog. Realtime Unit */
- /* reserved 145-159 */
-#define EM_MMDSP_PLUS 160 /* STMicroelectronics 64bit VLIW DSP */
-#define EM_CYPRESS_M8C 161 /* Cypress M8C */
-#define EM_R32C 162 /* Renesas R32C */
-#define EM_TRIMEDIA 163 /* NXP Semi. TriMedia */
-#define EM_QDSP6 164 /* QUALCOMM DSP6 */
-#define EM_8051 165 /* Intel 8051 and variants */
-#define EM_STXP7X 166 /* STMicroelectronics STxP7x */
-#define EM_NDS32 167 /* Andes Tech. compact code emb. RISC */
-#define EM_ECOG1X 168 /* Cyan Technology eCOG1X */
-#define EM_MAXQ30 169 /* Dallas Semi. MAXQ30 mc */
-#define EM_XIMO16 170 /* New Japan Radio (NJR) 16-bit DSP */
-#define EM_MANIK 171 /* M2000 Reconfigurable RISC */
-#define EM_CRAYNV2 172 /* Cray NV2 vector architecture */
-#define EM_RX 173 /* Renesas RX */
-#define EM_METAG 174 /* Imagination Tech. META */
-#define EM_MCST_ELBRUS 175 /* MCST Elbrus */
-#define EM_ECOG16 176 /* Cyan Technology eCOG16 */
-#define EM_CR16 177 /* National Semi. CompactRISC CR16 */
-#define EM_ETPU 178 /* Freescale Extended Time Processing Unit */
-#define EM_SLE9X 179 /* Infineon Tech. SLE9X */
-#define EM_L10M 180 /* Intel L10M */
-#define EM_K10M 181 /* Intel K10M */
- /* reserved 182 */
-#define EM_AARCH64 183 /* ARM AARCH64 */
- /* reserved 184 */
-#define EM_AVR32 185 /* Amtel 32-bit microprocessor */
-#define EM_STM8 186 /* STMicroelectronics STM8 */
-#define EM_TILE64 187 /* Tileta TILE64 */
-#define EM_TILEPRO 188 /* Tilera TILEPro */
-#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze */
-#define EM_CUDA 190 /* NVIDIA CUDA */
-#define EM_TILEGX 191 /* Tilera TILE-Gx */
-#define EM_CLOUDSHIELD 192 /* CloudShield */
-#define EM_COREA_1ST 193 /* KIPO-KAIST Core-A 1st gen. */
-#define EM_COREA_2ND 194 /* KIPO-KAIST Core-A 2nd gen. */
-#define EM_ARC_COMPACT2 195 /* Synopsys ARCompact V2 */
-#define EM_OPEN8 196 /* Open8 RISC */
-#define EM_RL78 197 /* Renesas RL78 */
-#define EM_VIDEOCORE5 198 /* Broadcom VideoCore V */
-#define EM_78KOR 199 /* Renesas 78KOR */
-#define EM_56800EX 200 /* Freescale 56800EX DSC */
-#define EM_BA1 201 /* Beyond BA1 */
-#define EM_BA2 202 /* Beyond BA2 */
-#define EM_XCORE 203 /* XMOS xCORE */
-#define EM_MCHP_PIC 204 /* Microchip 8-bit PIC(r) */
- /* reserved 205-209 */
-#define EM_KM32 210 /* KM211 KM32 */
-#define EM_KMX32 211 /* KM211 KMX32 */
-#define EM_EMX16 212 /* KM211 KMX16 */
-#define EM_EMX8 213 /* KM211 KMX8 */
-#define EM_KVARC 214 /* KM211 KVARC */
-#define EM_CDP 215 /* Paneve CDP */
-#define EM_COGE 216 /* Cognitive Smart Memory Processor */
-#define EM_COOL 217 /* Bluechip CoolEngine */
-#define EM_NORC 218 /* Nanoradio Optimized RISC */
-#define EM_CSR_KALIMBA 219 /* CSR Kalimba */
-#define EM_Z80 220 /* Zilog Z80 */
-#define EM_VISIUM 221 /* Controls and Data Services VISIUMcore */
-#define EM_FT32 222 /* FTDI Chip FT32 */
-#define EM_MOXIE 223 /* Moxie processor */
-#define EM_AMDGPU 224 /* AMD GPU */
- /* reserved 225-242 */
-#define EM_RISCV 243 /* RISC-V */
-
-#define EM_BPF 247 /* Linux BPF -- in-kernel virtual machine */
-
-#define EM_NUM 248
-
-/* Old spellings/synonyms. */
-
-#define EM_ARC_A5 EM_ARC_COMPACT
-
-/* If it is necessary to assign new unofficial EM_* values, please
- pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
- chances of collision with official or non-GNU unofficial values. */
-
-#define EM_ALPHA 0x9026
-
-/* Legal values for e_version (version). */
-
-#define EV_NONE 0 /* Invalid ELF version */
-#define EV_CURRENT 1 /* Current version */
-#define EV_NUM 2
-
-#define EI_NIDENT (16)
-
-#define PT_NULL 0 /* Program header table entry unused */
-#define PT_LOAD 1 /* Loadable program segment */
-#define PT_DYNAMIC 2 /* Dynamic linking information */
-#define PT_INTERP 3 /* Program interpreter */
-#define PT_NOTE 4 /* Auxiliary information */
-#define PT_SHLIB 5 /* Reserved */
-#define PT_PHDR 6 /* Entry for header table itself */
-#define PT_TLS 7 /* Thread-local storage segment */
-#define PT_NUM 8 /* Number of defined types */
-#define PT_LOOS 0x60000000 /* Start of OS-specific */
-#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
-#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
-#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */
-#define PT_LOSUNW 0x6ffffffa
-#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
-#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */
-#define PT_HISUNW 0x6fffffff
-#define PT_HIOS 0x6fffffff /* End of OS-specific */
-#define PT_LOPROC 0x70000000 /* Start of processor-specific */
-#define PT_HIPROC 0x7fffffff /* End of processor-specific */
-
-/* Legal values for p_flags (segment flags). */
-
-#define PF_X (1 << 0) /* Segment is executable */
-#define PF_W (1 << 1) /* Segment is writable */
-#define PF_R (1 << 2) /* Segment is readable */
-#define PF_MASKOS 0x0ff00000 /* OS-specific */
-#define PF_MASKPROC 0xf0000000 /* Processor-specific */
-
-/* Legal values for note segment descriptor types for core files. */
-
-#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */
-#define NT_PRFPREG 2 /* Contains copy of fpregset
- struct. */
-#define NT_FPREGSET 2 /* Contains copy of fpregset struct */
-#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */
-#define NT_PRXREG 4 /* Contains copy of prxregset struct */
-#define NT_TASKSTRUCT 4 /* Contains copy of task structure */
-#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */
-#define NT_AUXV 6 /* Contains copy of auxv array */
-#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */
-#define NT_ASRS 8 /* Contains copy of asrset struct */
-#define NT_PSTATUS 10 /* Contains copy of pstatus struct */
-#define NT_PSINFO 13 /* Contains copy of psinfo struct */
-#define NT_PRCRED 14 /* Contains copy of prcred struct */
-#define NT_UTSNAME 15 /* Contains copy of utsname struct */
-#define NT_LWPSTATUS 16 /* Contains copy of lwpstatus struct */
-#define NT_LWPSINFO 17 /* Contains copy of lwpinfo struct */
-#define NT_PRFPXREG 20 /* Contains copy of fprxregset struct */
-#define NT_SIGINFO 0x53494749 /* Contains copy of siginfo_t,
- size might increase */
-#define NT_FILE 0x46494c45 /* Contains information about mapped
- files */
-#define NT_PRXFPREG 0x46e62b7f /* Contains copy of user_fxsr_struct */
-#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
-#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */
-#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
-#define NT_PPC_TAR 0x103 /* Target Address Register */
-#define NT_PPC_PPR 0x104 /* Program Priority Register */
-#define NT_PPC_DSCR 0x105 /* Data Stream Control Register */
-#define NT_PPC_EBB 0x106 /* Event Based Branch Registers */
-#define NT_PPC_PMU 0x107 /* Performance Monitor Registers */
-#define NT_PPC_TM_CGPR 0x108 /* TM checkpointed GPR Registers */
-#define NT_PPC_TM_CFPR 0x109 /* TM checkpointed FPR Registers */
-#define NT_PPC_TM_CVMX 0x10a /* TM checkpointed VMX Registers */
-#define NT_PPC_TM_CVSX 0x10b /* TM checkpointed VSX Registers */
-#define NT_PPC_TM_SPR 0x10c /* TM Special Purpose Registers */
-#define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address
- Register */
-#define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority
- Register */
-#define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control
- Register */
-#define NT_PPC_PKEY 0x110 /* Memory Protection Keys
- registers. */
-#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
-#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
-#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
-#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */
-#define NT_S390_TIMER 0x301 /* s390 timer register */
-#define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */
-#define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */
-#define NT_S390_CTRS 0x304 /* s390 control registers */
-#define NT_S390_PREFIX 0x305 /* s390 prefix register */
-#define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */
-#define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */
-#define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */
-#define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15
- upper half. */
-#define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31. */
-#define NT_S390_GS_CB 0x30b /* s390 guarded storage registers. */
-#define NT_S390_GS_BC 0x30c /* s390 guarded storage
- broadcast control block. */
-#define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation. */
-#define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */
-#define NT_ARM_TLS 0x401 /* ARM TLS register */
-#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */
-#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */
-#define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
-#define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension
- registers */
-#define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note. */
-
-/* Legal values for the note segment descriptor types for object files. */
-
-#define NT_VERSION 1 /* Contains a version string. */
-
-typedef struct
-{
- unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
- Elf64_Half e_type; /* Object file type */
- Elf64_Half e_machine; /* Architecture */
- Elf64_Word e_version; /* Object file version */
- Elf64_Addr e_entry; /* Entry point virtual address */
- Elf64_Off e_phoff; /* Program header table file offset */
- Elf64_Off e_shoff; /* Section header table file offset */
- Elf64_Word e_flags; /* Processor-specific flags */
- Elf64_Half e_ehsize; /* ELF header size in bytes */
- Elf64_Half e_phentsize; /* Program header table entry size */
- Elf64_Half e_phnum; /* Program header table entry count */
- Elf64_Half e_shentsize; /* Section header table entry size */
- Elf64_Half e_shnum; /* Section header table entry count */
- Elf64_Half e_shstrndx; /* Section header string table index */
-} Elf64_Ehdr;
-
-typedef struct
-{
- Elf64_Word p_type; /* Segment type */
- Elf64_Word p_flags; /* Segment flags */
- Elf64_Off p_offset; /* Segment file offset */
- Elf64_Addr p_vaddr; /* Segment virtual address */
- Elf64_Addr p_paddr; /* Segment physical address */
- Elf64_Xword p_filesz; /* Segment size in file */
- Elf64_Xword p_memsz; /* Segment size in memory */
- Elf64_Xword p_align; /* Segment alignment */
-} Elf64_Phdr;
-
-typedef struct {
- Elf64_Addr r_offset; /* Location at which to apply the action */
- Elf64_Xword r_info; /* index and type of relocation */
-} Elf64_Rel;
-
-typedef struct {
- Elf64_Word sh_name; /* Section name, index in string tbl */
- Elf64_Word sh_type; /* Type of section */
- Elf64_Xword sh_flags; /* Miscellaneous section attributes */
- Elf64_Addr sh_addr; /* Section virtual addr at execution */
- Elf64_Off sh_offset; /* Section file offset */
- Elf64_Xword sh_size; /* Size of section in bytes */
- Elf64_Word sh_link; /* Index of another section */
- Elf64_Word sh_info; /* Additional section information */
- Elf64_Xword sh_addralign; /* Section alignment */
- Elf64_Xword sh_entsize; /* Entry size if section holds table */
-} Elf64_Shdr;
-
-#endif /* _SYS_ELF_H_ */
diff --git a/sys/include/sys/errno.h b/sys/include/sys/errno.h
deleted file mode 100644
index a93cf18..0000000
--- a/sys/include/sys/errno.h
+++ /dev/null
@@ -1,159 +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.
- */
-
-#ifndef _SYS_ERRNO_H_
-#define _SYS_ERRNO_H_
-
-#define EXIT_SUCCESS 0
-#define EXIT_FAILURE 1
-
-#define EPERM 1 /* Not super-user */
-#define ENOENT 2 /* No such file or directory */
-#define ESRCH 3 /* No such process */
-#define EINTR 4 /* Interrupted system call */
-#define EIO 5 /* I/O error */
-#define ENXIO 6 /* No such device or address */
-#define E2BIG 7 /* Arg list too long */
-#define ENOEXEC 8 /* Exec format error */
-#define EBADF 9 /* Bad file number */
-#define ECHILD 10 /* No children */
-#define EAGAIN 11 /* No more processes */
-#define ENOMEM 12 /* Not enough core */
-#define EACCES 13 /* Permission denied */
-#define EFAULT 14 /* Bad address */
-#define ENOTBLK 15 /* Block device required */
-#define EBUSY 16 /* Mount device busy */
-#define EEXIST 17 /* File exists */
-#define EXDEV 18 /* Cross-device link */
-#define ENODEV 19 /* No such device */
-#define ENOTDIR 20 /* Not a directory */
-#define EISDIR 21 /* Is a directory */
-#define EINVAL 22 /* Invalid argument */
-#define ENFILE 23 /* Too many open files in system */
-#define EMFILE 24 /* Too many open files */
-#define ENOTTY 25 /* Not a typewriter */
-#define ETXTBSY 26 /* Text file busy */
-#define EFBIG 27 /* File too large */
-#define ENOSPC 28 /* No space left on device */
-#define ESPIPE 29 /* Illegal seek */
-#define EROFS 30 /* Read only file system */
-#define EMLINK 31 /* Too many links */
-#define EPIPE 32 /* Broken pipe */
-#define EDOM 33 /* Math arg out of domain of func */
-#define ERANGE 34 /* Math result not representable */
-#define ENOMSG 35 /* No message of desired type */
-#define EIDRM 36 /* Identifier removed */
-#define ECHRNG 37 /* Channel number out of range */
-#define EL2NSYNC 38 /* Level 2 not synchronized */
-#define EL3HLT 39 /* Level 3 halted */
-#define EL3RST 40 /* Level 3 reset */
-#define ELNRNG 41 /* Link number out of range */
-#define EUNATCH 42 /* Protocol driver not attached */
-#define ENOCSI 43 /* No CSI structure available */
-#define EL2HLT 44 /* Level 2 halted */
-#define EDEADLK 45 /* Deadlock condition */
-#define ENOLCK 46 /* No record locks available */
-#define EBADE 50 /* Invalid exchange */
-#define EBADR 51 /* Invalid request descriptor */
-#define EXFULL 52 /* Exchange full */
-#define ENOANO 53 /* No anode */
-#define EBADRQC 54 /* Invalid request code */
-#define EBADSLT 55 /* Invalid slot */
-#define EDEADLOCK 56 /* File locking deadlock error */
-#define EBFONT 57 /* Bad font file fmt */
-#define ENOSTR 60 /* Device not a stream */
-#define ENODATA 61 /* No data (for no delay io) */
-#define ETIME 62 /* Timer expired */
-#define ENOSR 63 /* Out of streams resources */
-#define ENONET 64 /* Machine is not on the network */
-#define ENOPKG 65 /* Package not installed */
-#define EREMOTE 66 /* The object is remote */
-#define ENOLINK 67 /* The link has been severed */
-#define EADV 68 /* Advertise error */
-#define ESRMNT 69 /* Srmount error */
-#define ECOMM 70 /* Communication error on send */
-#define EPROTO 71 /* Protocol error */
-#define EMULTIHOP 74 /* Multihop attempted */
-#define ELBIN 75 /* Inode is remote (not really error) */
-#define EDOTDOT 76 /* Cross mount point (not really error) */
-#define EBADMSG 77 /* Trying to read unreadable message */
-#define EFTYPE 79 /* Inappropriate file type or format */
-#define ENOTUNIQ 80 /* Given log. name not unique */
-#define EBADFD 81 /* f.d. invalid for this operation */
-#define EREMCHG 82 /* Remote address changed */
-#define ELIBACC 83 /* Can't access a needed shared lib */
-#define ELIBBAD 84 /* Accessing a corrupted shared lib */
-#define ELIBSCN 85 /* .lib section in a.out corrupted */
-#define ELIBMAX 86 /* Attempting to link in too many libs */
-#define ELIBEXEC 87 /* Attempting to exec a shared library */
-#define ENOSYS 88 /* Function not implemented */
-#define ENMFILE 89 /* No more files */
-#define ENOTEMPTY 90 /* Directory not empty */
-#define ENAMETOOLONG 91 /* File or path name too long */
-#define ELOOP 92 /* Too many symbolic links */
-#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
-#define EPFNOSUPPORT 96 /* Protocol family not supported */
-#define ECONNRESET 104 /* Connection reset by peer */
-#define ENOBUFS 105 /* No buffer space available */
-#define EAFNOSUPPORT 106 /* Address family not supported by protocol family */
-#define EPROTOTYPE 107 /* Protocol wrong type for socket */
-#define ENOTSOCK 108 /* Socket operation on non-socket */
-#define ENOPROTOOPT 109 /* Protocol not available */
-#define ESHUTDOWN 110 /* Can't send after socket shutdown */
-#define ECONNREFUSED 111 /* Connection refused */
-#define EADDRINUSE 112 /* Address already in use */
-#define ECONNABORTED 113 /* Connection aborted */
-#define ENETUNREACH 114 /* Network is unreachable */
-#define ENETDOWN 115 /* Network interface is not configured */
-#define ETIMEDOUT 116 /* Connection timed out */
-#define EHOSTDOWN 117 /* Host is down */
-#define EHOSTUNREACH 118 /* Host is unreachable */
-#define EINPROGRESS 119 /* Connection already in progress */
-#define EALREADY 120 /* Socket already connected */
-#define EDESTADDRREQ 121 /* Destination address required */
-#define EMSGSIZE 122 /* Message too long */
-#define EPROTONOSUPPORT 123 /* Unknown protocol */
-#define ESOCKTNOSUPPORT 124 /* Socket type not supported */
-#define EADDRNOTAVAIL 125 /* Address not available */
-#define ENETRESET 126
-#define EISCONN 127 /* Socket is already connected */
-#define ENOTCONN 128 /* Socket is not connected */
-#define ETOOMANYREFS 129
-#define EPROCLIM 130
-#define EUSERS 131
-#define EDQUOT 132
-#define ESTALE 133
-#define ENOTSUP 134 /* Not supported */
-#define ENOMEDIUM 135 /* No medium (in tape drive) */
-#define ENOSHARE 136 /* No such host or network path */
-#define ECASECLASH 137 /* Filename exists with different case */
-#define EILSEQ 138
-#define EOVERFLOW 139 /* Value too large for defined data type */
-
-#endif
diff --git a/sys/include/sys/exec.h b/sys/include/sys/exec.h
deleted file mode 100644
index 5832a3f..0000000
--- a/sys/include/sys/exec.h
+++ /dev/null
@@ -1,37 +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.
- */
-
-#ifndef _SYS_EXEC_H_
-#define _SYS_EXEC_H_
-
-#include <sys/syscall.h>
-
-uint64_t sys_execv(struct syscall_args *args);
-
-#endif
diff --git a/sys/include/sys/fbdev.h b/sys/include/sys/fbdev.h
deleted file mode 100644
index 7308a92..0000000
--- a/sys/include/sys/fbdev.h
+++ /dev/null
@@ -1,48 +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.
- */
-
-#ifndef _SYS_FBDEV_H_
-#define _SYS_FBDEV_H_
-
-#if defined(_KERNEL)
-#include <sys/types.h>
-#else
-#include <stdint.h>
-#endif
-
-#define FBIOCTL_INFO 0x00000000
-
-struct fbdev_info {
- uint32_t width;
- uint32_t height;
- uint32_t pitch;
- uint32_t bits_per_pixel;
-};
-
-#endif
diff --git a/sys/include/sys/filedesc.h b/sys/include/sys/filedesc.h
deleted file mode 100644
index f2c2778..0000000
--- a/sys/include/sys/filedesc.h
+++ /dev/null
@@ -1,72 +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.
- */
-
-#ifndef _SYS_FILEDESC_H_
-#define _SYS_FILEDESC_H_
-
-#include <sys/vnode.h>
-#include <sys/mutex.h>
-#include <sys/syscall.h>
-#include <sys/types.h>
-
-#define O_RDONLY 0x00000
-#define O_WRONLY 0x00001
-#define O_RDWR 0x00002
-
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-
-struct proc;
-
-struct filedesc {
- int fdno;
- int oflag;
- off_t offset;
- bool is_dir;
- struct vnode *vnode;
- struct mutex lock;
-};
-
-#if defined(_KERNEL)
-int fd_alloc(struct proc *td, struct filedesc **fd_out);
-struct filedesc *fd_from_fdnum(const struct proc *td, int fdno);
-void fd_close_fdnum(struct proc *td, int fdno);
-ssize_t write(int fd, const void *buf, size_t count);
-int open(const char *pathname, int oflag);
-int read(int fd, void *buf, size_t count);
-off_t lseek(int fd, off_t offset, int whence);
-
-uint64_t sys_write(struct syscall_args *args);
-uint64_t sys_open(struct syscall_args *args);
-uint64_t sys_close(struct syscall_args *args);
-uint64_t sys_read(struct syscall_args *args);
-uint64_t sys_lseek(struct syscall_args *args);
-#endif
-#endif
diff --git a/sys/include/sys/intr.h b/sys/include/sys/intr.h
deleted file mode 100644
index 0590f87..0000000
--- a/sys/include/sys/intr.h
+++ /dev/null
@@ -1,55 +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.
- */
-
-#ifndef _SYS_INTR_H_
-#define _SYS_INTR_H_
-
-#if defined(_KERNEL)
-#include <sys/types.h>
-#include <sys/spinlock.h>
-#include <sys/queue.h>
-
-/*
- * Interrupt information
- */
-struct intr_info {
- struct spinlock lock;
- const char *source;
- const char *device;
- uint8_t affinity;
- size_t count; /* Interrupt count */
- TAILQ_ENTRY(intr_info) link;
-};
-
-struct intr_info *intr_info_alloc(const char *source, const char *dev);
-void intr_register(struct intr_info *info);
-void intr_init_proc(void);
-
-#endif /* defined(_KERNEL) */
-#endif /* !_SYS_INTR_H_ */
diff --git a/sys/include/sys/ksyms.h b/sys/include/sys/ksyms.h
deleted file mode 100644
index 2862cbc..0000000
--- a/sys/include/sys/ksyms.h
+++ /dev/null
@@ -1,44 +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.
- */
-
-#ifndef _SYS_KSYMS_H_
-#define _SYS_KSYMS_H_
-
-#include <sys/cdefs.h>
-
-#if defined(_KERNEL)
-struct kernel_symbol {
- uint64_t addr;
- char* name;
-};
-
-__weak extern struct kernel_symbol g_ksym_table[];
-
-#endif /* defined(_KERNEL) */
-#endif
diff --git a/sys/include/sys/limine.h b/sys/include/sys/limine.h
deleted file mode 100644
index f26d8c5..0000000
--- a/sys/include/sys/limine.h
+++ /dev/null
@@ -1,495 +0,0 @@
-/* BSD Zero Clause License */
-
-/* Copyright (C) 2022-2023 mintsuki and contributors.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef _LIMINE_H
-#define _LIMINE_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-
-/* Misc */
-
-#ifdef LIMINE_NO_POINTERS
-# define LIMINE_PTR(TYPE) uint64_t
-#else
-# define LIMINE_PTR(TYPE) TYPE
-#endif
-
-#ifdef __GNUC__
-# define LIMINE_DEPRECATED __attribute__((__deprecated__))
-# define LIMINE_DEPRECATED_IGNORE_START \
- _Pragma("GCC diagnostic push") \
- _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
-# define LIMINE_DEPRECATED_IGNORE_END \
- _Pragma("GCC diagnostic pop")
-#else
-# define LIMINE_DEPRECATED
-# define LIMINE_DEPRECATED_IGNORE_START
-# define LIMINE_DEPRECATED_IGNORE_END
-#endif
-
-#define LIMINE_COMMON_MAGIC 0xc7b1dd30df4c8b88, 0x0a82e883a194f07b
-
-struct limine_uuid {
- uint32_t a;
- uint16_t b;
- uint16_t c;
- uint8_t d[8];
-};
-
-#define LIMINE_MEDIA_TYPE_GENERIC 0
-#define LIMINE_MEDIA_TYPE_OPTICAL 1
-#define LIMINE_MEDIA_TYPE_TFTP 2
-
-struct limine_file {
- uint64_t revision;
- LIMINE_PTR(void *) address;
- uint64_t size;
- LIMINE_PTR(char *) path;
- LIMINE_PTR(char *) cmdline;
- uint32_t media_type;
- uint32_t unused;
- uint32_t tftp_ip;
- uint32_t tftp_port;
- uint32_t partition_index;
- uint32_t mbr_disk_id;
- struct limine_uuid gpt_disk_uuid;
- struct limine_uuid gpt_part_uuid;
- struct limine_uuid part_uuid;
-};
-
-/* Boot info */
-
-#define LIMINE_BOOTLOADER_INFO_REQUEST { LIMINE_COMMON_MAGIC, 0xf55038d8e2a1202f, 0x279426fcf5f59740 }
-
-struct limine_bootloader_info_response {
- uint64_t revision;
- LIMINE_PTR(char *) name;
- LIMINE_PTR(char *) version;
-};
-
-struct limine_bootloader_info_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_bootloader_info_response *) response;
-};
-
-/* Stack size */
-
-#define LIMINE_STACK_SIZE_REQUEST { LIMINE_COMMON_MAGIC, 0x224ef0460a8e8926, 0xe1cb0fc25f46ea3d }
-
-struct limine_stack_size_response {
- uint64_t revision;
-};
-
-struct limine_stack_size_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_stack_size_response *) response;
- uint64_t stack_size;
-};
-
-/* HHDM */
-
-#define LIMINE_HHDM_REQUEST { LIMINE_COMMON_MAGIC, 0x48dcf1cb8ad2b852, 0x63984e959a98244b }
-
-struct limine_hhdm_response {
- uint64_t revision;
- uint64_t offset;
-};
-
-struct limine_hhdm_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_hhdm_response *) response;
-};
-
-/* Framebuffer */
-
-#define LIMINE_FRAMEBUFFER_REQUEST { LIMINE_COMMON_MAGIC, 0x9d5827dcd881dd75, 0xa3148604f6fab11b }
-
-#define LIMINE_FRAMEBUFFER_RGB 1
-
-struct limine_video_mode {
- uint64_t pitch;
- uint64_t width;
- uint64_t height;
- uint16_t bpp;
- uint8_t memory_model;
- uint8_t red_mask_size;
- uint8_t red_mask_shift;
- uint8_t green_mask_size;
- uint8_t green_mask_shift;
- uint8_t blue_mask_size;
- uint8_t blue_mask_shift;
-};
-
-struct limine_framebuffer {
- LIMINE_PTR(void *) address;
- uint64_t width;
- uint64_t height;
- uint64_t pitch;
- uint16_t bpp;
- uint8_t memory_model;
- uint8_t red_mask_size;
- uint8_t red_mask_shift;
- uint8_t green_mask_size;
- uint8_t green_mask_shift;
- uint8_t blue_mask_size;
- uint8_t blue_mask_shift;
- uint8_t unused[7];
- uint64_t edid_size;
- LIMINE_PTR(void *) edid;
- /* Response revision 1 */
- uint64_t mode_count;
- LIMINE_PTR(struct limine_video_mode **) modes;
-};
-
-struct limine_framebuffer_response {
- uint64_t revision;
- uint64_t framebuffer_count;
- LIMINE_PTR(struct limine_framebuffer **) framebuffers;
-};
-
-struct limine_framebuffer_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_framebuffer_response *) response;
-};
-
-/* Terminal */
-
-#define LIMINE_TERMINAL_REQUEST { LIMINE_COMMON_MAGIC, 0xc8ac59310c2b0844, 0xa68d0c7265d38878 }
-
-#define LIMINE_TERMINAL_CB_DEC 10
-#define LIMINE_TERMINAL_CB_BELL 20
-#define LIMINE_TERMINAL_CB_PRIVATE_ID 30
-#define LIMINE_TERMINAL_CB_STATUS_REPORT 40
-#define LIMINE_TERMINAL_CB_POS_REPORT 50
-#define LIMINE_TERMINAL_CB_KBD_LEDS 60
-#define LIMINE_TERMINAL_CB_MODE 70
-#define LIMINE_TERMINAL_CB_LINUX 80
-
-#define LIMINE_TERMINAL_CTX_SIZE ((uint64_t)(-1))
-#define LIMINE_TERMINAL_CTX_SAVE ((uint64_t)(-2))
-#define LIMINE_TERMINAL_CTX_RESTORE ((uint64_t)(-3))
-#define LIMINE_TERMINAL_FULL_REFRESH ((uint64_t)(-4))
-
-/* Response revision 1 */
-#define LIMINE_TERMINAL_OOB_OUTPUT_GET ((uint64_t)(-10))
-#define LIMINE_TERMINAL_OOB_OUTPUT_SET ((uint64_t)(-11))
-
-#define LIMINE_TERMINAL_OOB_OUTPUT_OCRNL (1 << 0)
-#define LIMINE_TERMINAL_OOB_OUTPUT_OFDEL (1 << 1)
-#define LIMINE_TERMINAL_OOB_OUTPUT_OFILL (1 << 2)
-#define LIMINE_TERMINAL_OOB_OUTPUT_OLCUC (1 << 3)
-#define LIMINE_TERMINAL_OOB_OUTPUT_ONLCR (1 << 4)
-#define LIMINE_TERMINAL_OOB_OUTPUT_ONLRET (1 << 5)
-#define LIMINE_TERMINAL_OOB_OUTPUT_ONOCR (1 << 6)
-#define LIMINE_TERMINAL_OOB_OUTPUT_OPOST (1 << 7)
-
-LIMINE_DEPRECATED_IGNORE_START
-
-struct LIMINE_DEPRECATED limine_terminal;
-
-typedef void (*limine_terminal_write)(struct limine_terminal *, const char *, uint64_t);
-typedef void (*limine_terminal_callback)(struct limine_terminal *, uint64_t, uint64_t, uint64_t, uint64_t);
-
-struct LIMINE_DEPRECATED limine_terminal {
- uint64_t columns;
- uint64_t rows;
- LIMINE_PTR(struct limine_framebuffer *) framebuffer;
-};
-
-struct LIMINE_DEPRECATED limine_terminal_response {
- uint64_t revision;
- uint64_t terminal_count;
- LIMINE_PTR(struct limine_terminal **) terminals;
- LIMINE_PTR(limine_terminal_write) write;
-};
-
-struct LIMINE_DEPRECATED limine_terminal_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_terminal_response *) response;
- LIMINE_PTR(limine_terminal_callback) callback;
-};
-
-LIMINE_DEPRECATED_IGNORE_END
-
-/* 5-level paging */
-
-#define LIMINE_5_LEVEL_PAGING_REQUEST { LIMINE_COMMON_MAGIC, 0x94469551da9b3192, 0xebe5e86db7382888 }
-
-struct limine_5_level_paging_response {
- uint64_t revision;
-};
-
-struct limine_5_level_paging_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_5_level_paging_response *) response;
-};
-
-/* SMP */
-
-#define LIMINE_SMP_REQUEST { LIMINE_COMMON_MAGIC, 0x95a67b819a1b857e, 0xa0b61b723b6a73e0 }
-
-struct limine_smp_info;
-
-typedef void (*limine_goto_address)(struct limine_smp_info *);
-
-#if defined (__x86_64__) || defined (__i386__)
-
-#define LIMINE_SMP_X2APIC (1 << 0)
-
-struct limine_smp_info {
- uint32_t processor_id;
- uint32_t lapic_id;
- uint64_t reserved;
- LIMINE_PTR(limine_goto_address) goto_address;
- uint64_t extra_argument;
-};
-
-struct limine_smp_response {
- uint64_t revision;
- uint32_t flags;
- uint32_t bsp_lapic_id;
- uint64_t cpu_count;
- LIMINE_PTR(struct limine_smp_info **) cpus;
-};
-
-#elif defined (__aarch64__)
-
-struct limine_smp_info {
- uint32_t processor_id;
- uint32_t gic_iface_no;
- uint64_t mpidr;
- uint64_t reserved;
- LIMINE_PTR(limine_goto_address) goto_address;
- uint64_t extra_argument;
-};
-
-struct limine_smp_response {
- uint64_t revision;
- uint32_t flags;
- uint64_t bsp_mpidr;
- uint64_t cpu_count;
- LIMINE_PTR(struct limine_smp_info **) cpus;
-};
-
-#else
-#error Unknown architecture
-#endif
-
-struct limine_smp_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_smp_response *) response;
- uint64_t flags;
-};
-
-/* Memory map */
-
-#define LIMINE_MEMMAP_REQUEST { LIMINE_COMMON_MAGIC, 0x67cf3d9d378a806f, 0xe304acdfc50c3c62 }
-
-#define LIMINE_MEMMAP_USABLE 0
-#define LIMINE_MEMMAP_RESERVED 1
-#define LIMINE_MEMMAP_ACPI_RECLAIMABLE 2
-#define LIMINE_MEMMAP_ACPI_NVS 3
-#define LIMINE_MEMMAP_BAD_MEMORY 4
-#define LIMINE_MEMMAP_BOOTLOADER_RECLAIMABLE 5
-#define LIMINE_MEMMAP_KERNEL_AND_MODULES 6
-#define LIMINE_MEMMAP_FRAMEBUFFER 7
-
-struct limine_memmap_entry {
- uint64_t base;
- uint64_t length;
- uint64_t type;
-};
-
-struct limine_memmap_response {
- uint64_t revision;
- uint64_t entry_count;
- LIMINE_PTR(struct limine_memmap_entry **) entries;
-};
-
-struct limine_memmap_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_memmap_response *) response;
-};
-
-/* Entry point */
-
-#define LIMINE_ENTRY_POINT_REQUEST { LIMINE_COMMON_MAGIC, 0x13d86c035a1cd3e1, 0x2b0caa89d8f3026a }
-
-typedef void (*limine_entry_point)(void);
-
-struct limine_entry_point_response {
- uint64_t revision;
-};
-
-struct limine_entry_point_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_entry_point_response *) response;
- LIMINE_PTR(limine_entry_point) entry;
-};
-
-/* Kernel File */
-
-#define LIMINE_KERNEL_FILE_REQUEST { LIMINE_COMMON_MAGIC, 0xad97e90e83f1ed67, 0x31eb5d1c5ff23b69 }
-
-struct limine_kernel_file_response {
- uint64_t revision;
- LIMINE_PTR(struct limine_file *) kernel_file;
-};
-
-struct limine_kernel_file_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_kernel_file_response *) response;
-};
-
-/* Module */
-
-#define LIMINE_MODULE_REQUEST { LIMINE_COMMON_MAGIC, 0x3e7e279702be32af, 0xca1c4f3bd1280cee }
-
-#define LIMINE_INTERNAL_MODULE_REQUIRED (1 << 0)
-
-struct limine_internal_module {
- LIMINE_PTR(const char *) path;
- LIMINE_PTR(const char *) cmdline;
- uint64_t flags;
-};
-
-struct limine_module_response {
- uint64_t revision;
- uint64_t module_count;
- LIMINE_PTR(struct limine_file **) modules;
-};
-
-struct limine_module_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_module_response *) response;
-
- /* Request revision 1 */
- uint64_t internal_module_count;
- LIMINE_PTR(struct limine_internal_module **) internal_modules;
-};
-
-/* RSDP */
-
-#define LIMINE_RSDP_REQUEST { LIMINE_COMMON_MAGIC, 0xc5e77b6b397e7b43, 0x27637845accdcf3c }
-
-struct limine_rsdp_response {
- uint64_t revision;
- LIMINE_PTR(void *) address;
-};
-
-struct limine_rsdp_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_rsdp_response *) response;
-};
-
-/* SMBIOS */
-
-#define LIMINE_SMBIOS_REQUEST { LIMINE_COMMON_MAGIC, 0x9e9046f11e095391, 0xaa4a520fefbde5ee }
-
-struct limine_smbios_response {
- uint64_t revision;
- LIMINE_PTR(void *) entry_32;
- LIMINE_PTR(void *) entry_64;
-};
-
-struct limine_smbios_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_smbios_response *) response;
-};
-
-/* EFI system table */
-
-#define LIMINE_EFI_SYSTEM_TABLE_REQUEST { LIMINE_COMMON_MAGIC, 0x5ceba5163eaaf6d6, 0x0a6981610cf65fcc }
-
-struct limine_efi_system_table_response {
- uint64_t revision;
- LIMINE_PTR(void *) address;
-};
-
-struct limine_efi_system_table_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_efi_system_table_response *) response;
-};
-
-/* Boot time */
-
-#define LIMINE_BOOT_TIME_REQUEST { LIMINE_COMMON_MAGIC, 0x502746e184c088aa, 0xfbc5ec83e6327893 }
-
-struct limine_boot_time_response {
- uint64_t revision;
- int64_t boot_time;
-};
-
-struct limine_boot_time_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_boot_time_response *) response;
-};
-
-/* Kernel address */
-
-#define LIMINE_KERNEL_ADDRESS_REQUEST { LIMINE_COMMON_MAGIC, 0x71ba76863cc55f63, 0xb2644a48c516a487 }
-
-struct limine_kernel_address_response {
- uint64_t revision;
- uint64_t physical_base;
- uint64_t virtual_base;
-};
-
-struct limine_kernel_address_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_kernel_address_response *) response;
-};
-
-/* Device Tree Blob */
-
-#define LIMINE_DTB_REQUEST { LIMINE_COMMON_MAGIC, 0xb40ddb48fb54bac7, 0x545081493f81ffb7 }
-
-struct limine_dtb_response {
- uint64_t revision;
- LIMINE_PTR(void *) dtb_ptr;
-};
-
-struct limine_dtb_request {
- uint64_t id[4];
- uint64_t revision;
- LIMINE_PTR(struct limine_dtb_response *) response;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/sys/include/sys/loader.h b/sys/include/sys/loader.h
deleted file mode 100644
index 43ad36e..0000000
--- a/sys/include/sys/loader.h
+++ /dev/null
@@ -1,77 +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.
- */
-
-#ifndef _SYS_LOADER_H_
-#define _SYS_LOADER_H_
-
-#include <sys/types.h>
-#include <vm/pmap.h>
-#include <vm/vm.h>
-
-/* DANGER!: DO NOT CHANGE THESE DEFINES */
-#define AT_NULL 0
-#define AT_ENTRY 1
-#define AT_PHDR 2
-#define AT_PHENT 3
-#define AT_PHNUM 4
-#define AT_EXECPATH 5
-#define AT_SECURE 6
-#define AT_RANDOM 7
-#define AT_EXECFN 8
-#define AT_PAGESIZE 9
-
-#define STACK_PUSH(ptr, val) *(--ptr) = val
-#define AUXVAL(ptr, tag, val) __extension__ ({ \
- STACK_PUSH(ptr, val); \
- STACK_PUSH(ptr, tag); \
-});
-
-/* Auxiliary Vector */
-struct auxval {
- uint64_t at_entry;
- uint64_t at_phdr;
- uint64_t at_phent;
- uint64_t at_phnum;
-};
-
-struct exec_args {
- char **argp, **envp;
- struct auxval auxv;
- struct vas vas;
-};
-
-#if defined(_KERNEL)
-
-uintptr_t loader_init_stack(void *stack_top, struct exec_args args);
-int loader_unload(struct vas vas, struct vm_range *exec_range);
-int loader_load(struct vas vas, const void *dataptr, struct auxval *auxv,
- size_t load_base, char **ld_path, struct vm_range *prog_range);
-
-#endif /* defined(_KERNEL) */
-#endif /* !_SYS_LOADER_H_ */
diff --git a/sys/include/sys/machdep.h b/sys/include/sys/machdep.h
deleted file mode 100644
index 0ecb83e..0000000
--- a/sys/include/sys/machdep.h
+++ /dev/null
@@ -1,56 +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.
- */
-
-#ifndef _SYS_MACHDEP_H_
-#define _SYS_MACHDEP_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-#include <sys/proc.h>
-
-#if defined(_KERNEL)
-
-#define MAXCPUS 32
-
-int processor_init_pcb(struct proc *proc);
-int processor_free_pcb(struct proc *proc);
-void processor_switch_to(struct proc *old_td, struct proc *new_td);
-void processor_init(void);
-void processor_halt(void);
-void intr_mask(void);
-void intr_unmask(void);
-void machine_panic(void);
-__weak void chips_init(void);
-__weak void pre_init(void);
-__weak void serial_dbgch(char c);
-__weak void cpu_halt_others(void);
-__weak void cpu_reset(void);
-
-#endif /* defined(_KERNEL) */
-#endif /* !_SYS_MACHDEP_H_ */
diff --git a/sys/include/sys/mmio.h b/sys/include/sys/mmio.h
deleted file mode 100644
index 69d8fd2..0000000
--- a/sys/include/sys/mmio.h
+++ /dev/null
@@ -1,112 +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.
- */
-
-/*
- * For documentation: See mmio(9)
- */
-
-#ifndef _SYS_MMIO_H_
-#define _SYS_MMIO_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-#include <vm/vm.h>
-
-/*
- * mmio_write<n> - Writes to MMIO address with specific size
- *
- * @addr: Address to write to.
- * @val: Value to write.
- *
- * These functions will add the higher half
- * offset (VM_HIGHER_HALF) if the MMIO address
- * is less than VM_HIGHER_HALF as it'll be safe
- * to assume it's a physical address. Page faults
- * from writes could be due to the resulting virtual
- * address not being mapped.
- */
-#define _MMIO_WRITE_TYPE(TYPE, SUFFIX) \
- static inline void \
- mmio_write##SUFFIX(volatile void *addr, TYPE val) \
- { \
- uintptr_t tmp; \
- \
- tmp = (uintptr_t)addr; \
- if (tmp < VM_HIGHER_HALF) { \
- tmp += VM_HIGHER_HALF; \
- } \
- *(volatile TYPE *)tmp = val; \
- __mem_barrier(); \
- }
-
-/*
- * mmio_read<n> - Does the same as mmio_write<n> but for reading
- *
- * @addr: Address to read from.
- */
-#define _MMIO_READ_TYPE(TYPE, SUFFIX) \
- static inline TYPE \
- mmio_read##SUFFIX(volatile void *addr) \
- { \
- uintptr_t tmp; \
- \
- tmp = (uintptr_t)addr; \
- if (tmp < VM_HIGHER_HALF) { \
- tmp += VM_HIGHER_HALF; \
- } \
- \
- __mem_barrier(); /* Ensure writes complete */ \
- return *(volatile TYPE *)tmp; \
- }
-
-/*
- * To write to an MMIO address of, for example,
- * 8 bits, use mmio_write8(addr, val)
- */
-_MMIO_WRITE_TYPE(uint8_t, 8)
-_MMIO_WRITE_TYPE(uint16_t, 16)
-_MMIO_WRITE_TYPE(uint32_t, 32)
-#if __SIZEOF_SIZE_T__ == 8
-_MMIO_WRITE_TYPE(uint64_t, 64)
-#endif
-__extension__
-
-/*
- * To read from an MMIO address of, for example,
- * 8 bits, use mmio_read8(addr)
- */
-_MMIO_READ_TYPE(uint8_t, 8)
-_MMIO_READ_TYPE(uint16_t, 16)
-_MMIO_READ_TYPE(uint32_t, 32)
-#if __SIZEOF_SIZE_T__ == 8
-_MMIO_READ_TYPE(uint64_t, 64)
-#endif
-__extension__
-
-#endif /* !_SYS_MMIO_H_ */
diff --git a/sys/include/sys/mount.h b/sys/include/sys/mount.h
deleted file mode 100644
index b208bf7..0000000
--- a/sys/include/sys/mount.h
+++ /dev/null
@@ -1,80 +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.
- */
-
-#ifndef _SYS_MOUNT_H_
-#define _SYS_MOUNT_H_
-
-#include <sys/types.h>
-#include <sys/queue.h>
-#include <sys/vnode.h>
-#include <sys/cdefs.h>
-
-#define FS_NAME_MAX 16 /* Max length of FS type name including nul */
-
-struct fs_info;
-struct mount;
-struct vnode;
-
-struct vfsops {
- int(*init)(struct fs_info *info, struct vnode *source);
-};
-
-struct mount {
- int flags;
- size_t phash; /* Path hash */
- struct fs_info *fs;
- TAILQ_ENTRY(mount) link;
-};
-
-struct fs_info {
- char name[FS_NAME_MAX]; /* Filesystem type name */
- struct vfsops *vfsops; /* Filesystem operations */
- struct vops *vops; /* Vops for our vnode */
- struct vnode *vnode; /* Vnode for this filesystem */
- struct mount *mp_root;
- uint16_t caps;
-};
-
-/*
- * Filesystem capabilities
- */
-#define FSCAP_FULLPATH __BIT(0) /* Requires full path per lookup */
-
-/*
- * Mount flags
- */
-#define MNT_RDONLY 0x00000001
-
-#if defined(_KERNEL)
-int vfs_mount(const char *path, int mntflags, struct fs_info *fs);
-int vfs_get_mp(const char *path, struct mount **mp);
-void vfs_mount_init(void);
-#endif /* defined(_KERNEL) */
-
-#endif /* !_SYS_MOUNT_H_ */
diff --git a/sys/include/sys/mutex.h b/sys/include/sys/mutex.h
deleted file mode 100644
index dfd2dec..0000000
--- a/sys/include/sys/mutex.h
+++ /dev/null
@@ -1,42 +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.
- */
-
-#include <sys/types.h>
-
-#ifndef _SYS_MUTEX_H_
-#define _SYS_MUTEX_H_
-
-struct mutex {
- volatile _Atomic bool lock;
-};
-
-void mutex_acquire(struct mutex *mutex);
-void mutex_release(struct mutex *mutex);
-
-#endif /* !_SYS_MUTEX_H_ */
diff --git a/sys/include/sys/panic.h b/sys/include/sys/panic.h
deleted file mode 100644
index 961e5d5..0000000
--- a/sys/include/sys/panic.h
+++ /dev/null
@@ -1,41 +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.
- */
-
-#ifndef _SYS_PANIC_H_
-#define _SYS_PANIC_H_
-
-#include <stdarg.h>
-
-#if defined(_KERNEL)
-
-void panic(const char *fmt, ...);
-
-#endif
-
-#endif
diff --git a/sys/include/sys/proc.h b/sys/include/sys/proc.h
deleted file mode 100644
index e3416f9..0000000
--- a/sys/include/sys/proc.h
+++ /dev/null
@@ -1,91 +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.
- */
-
-#ifndef _SYS_PROC_H_
-#define _SYS_PROC_H_
-
-#include <sys/types.h>
-#include <sys/queue.h>
-#include <sys/filedesc.h>
-#include <sys/spinlock.h>
-#include <sys/loader.h>
-#include <machine/cpu.h>
-#include <machine/frame.h>
-#include <machine/pcb.h>
-#include <vm/vm.h>
-#include <vm/map.h>
-
-#define PROC_MAX_FDS 256
-#define PROC_MAX_ADDR_RANGE 4
-
-#define PROC_STACK_PAGES 8
-#define PROC_STACK_SIZE (PROC_STACK_PAGES*vm_get_page_size())
-
-/*
- * The PHYS_TO_VIRT/VIRT_TO_PHYS macros convert
- * addresses to lower and higher half addresses.
- * Userspace addresses are on the lower half,
- * therefore, we can just wrap over these to
- * keep things simple.
- *
- * XXX: TODO: This won't work when not identity mapping
- * lowerhalf addresses. Once that is updated,
- * get rid of this.
- */
-#define USER_TO_KERN(user) PHYS_TO_VIRT(user)
-#define KERN_TO_USER(kern) VIRT_TO_PHYS(kern)
-
-enum {
- ADDR_RANGE_EXEC = 0, /* Program address range */
- ADDR_RANGE_STACK /* Stack address range */
-};
-
-/*
- * A task running on the CPU e.g., a process or
- * a thread.
- */
-struct proc {
- pid_t pid;
- struct cpu_info *cpu;
- struct trapframe *tf;
- struct pcb pcb;
- struct vas addrsp;
- struct vm_range addr_range[PROC_MAX_ADDR_RANGE];
- struct spinlock lock;
- uint8_t is_user;
- uint8_t rested;
- uint32_t signal;
- uint32_t priority;
- struct filedesc *fds[PROC_MAX_FDS];
- struct spinlock mapspace_lock;
- struct vm_mapspace mapspace;
- TAILQ_ENTRY(proc) link;
-};
-
-#endif /* !_SYS_PROC_H_ */
diff --git a/sys/include/sys/queue.h b/sys/include/sys/queue.h
deleted file mode 100644
index 60231f4..0000000
--- a/sys/include/sys/queue.h
+++ /dev/null
@@ -1,173 +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.
- */
-
-#include <sys/types.h>
-
-#ifndef _QUEUE_H_
-#define _QUEUE_H_
-
-#define _Q_INVALIDATE(a)
-
-/*
- * Tail queue definitions.
- */
-#define TAILQ_HEAD(name, type) \
-struct name { \
- struct type *tqh_first; /* first element */ \
- struct type **tqh_last; /* addr of last next element */ \
- size_t nelem; /* Number of elements */ \
-}
-
-#define TAILQ_HEAD_INITIALIZER(head) \
- { NULL, &(head).tqh_first }
-
-#define TAILQ_ENTRY(type) \
-struct { \
- struct type *tqe_next; /* next element */ \
- struct type **tqe_prev; /* address of previous next element */ \
-}
-
-/*
- * Tail queue access methods.
- */
-#define TAILQ_NELEM(head) ((head)->nelem)
-#define TAILQ_FIRST(head) ((head)->tqh_first)
-#define TAILQ_END(head) NULL
-#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
-#define TAILQ_LAST(head, headname) \
- (*(((struct headname *)((head)->tqh_last))->tqh_last))
-/* XXX */
-#define TAILQ_PREV(elm, headname, field) \
- (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
-#define TAILQ_EMPTY(head) \
- (TAILQ_FIRST(head) == TAILQ_END(head))
-
-#define TAILQ_FOREACH(var, head, field) \
- for((var) = TAILQ_FIRST(head); \
- (var) != TAILQ_END(head); \
- (var) = TAILQ_NEXT(var, field))
-
-#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \
- for ((var) = TAILQ_FIRST(head); \
- (var) != TAILQ_END(head) && \
- ((tvar) = TAILQ_NEXT(var, field), 1); \
- (var) = (tvar))
-
-
-#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
- for((var) = TAILQ_LAST(head, headname); \
- (var) != TAILQ_END(head); \
- (var) = TAILQ_PREV(var, headname, field))
-
-#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \
- for ((var) = TAILQ_LAST(head, headname); \
- (var) != TAILQ_END(head) && \
- ((tvar) = TAILQ_PREV(var, headname, field), 1); \
- (var) = (tvar))
-
-/*
- * Tail queue functions.
- */
-#define TAILQ_INIT(head) do { \
- (head)->tqh_first = NULL; \
- (head)->tqh_last = &(head)->tqh_first; \
- (head)->nelem = 0; \
-} while (0)
-
-#define TAILQ_INSERT_HEAD(head, elm, field) do { \
- if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
- (head)->tqh_first->field.tqe_prev = \
- &(elm)->field.tqe_next; \
- else \
- (head)->tqh_last = &(elm)->field.tqe_next; \
- (head)->tqh_first = (elm); \
- (elm)->field.tqe_prev = &(head)->tqh_first; \
- ++(head)->nelem; \
-} while (0)
-
-#define TAILQ_INSERT_TAIL(head, elm, field) do { \
- (elm)->field.tqe_next = NULL; \
- (elm)->field.tqe_prev = (head)->tqh_last; \
- *(head)->tqh_last = (elm); \
- (head)->tqh_last = &(elm)->field.tqe_next; \
- ++(head)->nelem; \
-} while (0)
-
-#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
- if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
- (elm)->field.tqe_next->field.tqe_prev = \
- &(elm)->field.tqe_next; \
- else \
- (head)->tqh_last = &(elm)->field.tqe_next; \
- (listelm)->field.tqe_next = (elm); \
- (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \
- ++(head)->nelem; \
-} while (0)
-
-#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
- (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
- (elm)->field.tqe_next = (listelm); \
- *(listelm)->field.tqe_prev = (elm); \
- (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
- ++(head)->nelem; \
-} while (0)
-
-#define TAILQ_REMOVE(head, elm, field) do { \
- if (((elm)->field.tqe_next) != NULL) \
- (elm)->field.tqe_next->field.tqe_prev = \
- (elm)->field.tqe_prev; \
- else \
- (head)->tqh_last = (elm)->field.tqe_prev; \
- *(elm)->field.tqe_prev = (elm)->field.tqe_next; \
- _Q_INVALIDATE((elm)->field.tqe_prev); \
- _Q_INVALIDATE((elm)->field.tqe_next); \
- --(head)->nelem; \
-} while (0)
-
-#define TAILQ_REPLACE(head, elm, elm2, field) do { \
- if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != NULL) \
- (elm2)->field.tqe_next->field.tqe_prev = \
- &(elm2)->field.tqe_next; \
- else \
- (head)->tqh_last = &(elm2)->field.tqe_next; \
- (elm2)->field.tqe_prev = (elm)->field.tqe_prev; \
- *(elm2)->field.tqe_prev = (elm2); \
- _Q_INVALIDATE((elm)->field.tqe_prev); \
- _Q_INVALIDATE((elm)->field.tqe_next); \
-} while (0)
-
-#define TAILQ_CONCAT(head1, head2, field) do { \
- if (!TAILQ_EMPTY(head2)) { \
- *(head1)->tqh_last = (head2)->tqh_first; \
- (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
- (head1)->tqh_last = (head2)->tqh_last; \
- TAILQ_INIT((head2)); \
- } \
-} while (0)
-#endif /* _QUEUE_H_ */
diff --git a/sys/include/sys/reboot.h b/sys/include/sys/reboot.h
deleted file mode 100644
index e09bd4f..0000000
--- a/sys/include/sys/reboot.h
+++ /dev/null
@@ -1,45 +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.
- */
-
-#ifndef _SYS_REBOOT_H_
-#define _SYS_REBOOT_H_
-
-#if defined(_KERNEL)
-#include <sys/syscall.h>
-#endif
-
-#define REBOOT_DEFAULT 0x0000
-
-int reboot(int type);
-
-#if defined(_KERNEL)
-uint64_t sys_reboot(struct syscall_args *args);
-#endif /* defined(_KERNEL) */
-
-#endif /* !_SYS_REBOOT_H_ */
diff --git a/sys/include/sys/sched.h b/sys/include/sys/sched.h
deleted file mode 100644
index 06cf860..0000000
--- a/sys/include/sys/sched.h
+++ /dev/null
@@ -1,53 +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.
- */
-
-#ifndef _SYS_SCHED_H_
-#define _SYS_SCHED_H_
-
-#include <sys/proc.h>
-#include <sys/queue.h>
-#include <sys/types.h>
-#include <sys/spinlock.h>
-#include <sys/syscall.h>
-#include <machine/cpu.h>
-#include <machine/frame.h>
-
-struct proc *this_td(void);
-void sched_init(void);
-void sched_exit(void);
-void sched_context_switch(struct trapframe *tf);
-void sched_rest(void);
-
-__noreturn
-void sched_enter(void);
-
-__noreturn
-uint64_t sys_exit(struct syscall_args *args);
-
-#endif /* !_SYS_SCHED_H_ */
diff --git a/sys/include/sys/sched_state.h b/sys/include/sys/sched_state.h
deleted file mode 100644
index 52d6c56..0000000
--- a/sys/include/sys/sched_state.h
+++ /dev/null
@@ -1,42 +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.
- */
-
-#ifndef _SYS_SCHED_STATE_H_
-#define _SYS_SCHED_STATE_H_
-
-#include <sys/proc.h>
-
-/*
- * Scheduler state, per CPU.
- */
-struct sched_state {
- struct proc *td; /* Current_thread */
-};
-
-#endif /* !_SYS_SCHED_STATE_H_ */
diff --git a/sys/include/sys/schedvar.h b/sys/include/sys/schedvar.h
deleted file mode 100644
index 2a0a1fc..0000000
--- a/sys/include/sys/schedvar.h
+++ /dev/null
@@ -1,61 +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.
- */
-
-#ifndef _SYS_SCHEDVAR_H_
-#define _SYS_SCHEDVAR_H_
-
-#include <sys/cdefs.h>
-#include <sys/proc.h>
-#include <sys/queue.h>
-
-#define DEFAULT_TIMESLICE_USEC 3000
-#define SHORT_TIMESLICE_USEC 10
-
-#define SCHED_POLICY_MLFQ 0x0000U /* Multilevel feedback queue */
-#define SCHED_POLICY_RR 0x0001U /* Round robin */
-
-typedef uint8_t schedpolicy_t;
-
-/* Might be set by kconf(1) */
-#if defined(__SCHED_NQUEUE)
-#define SCHED_NQUEUE __SCHED_NQUEUE
-#else
-#define SCHED_NQUEUE 4
-#endif
-
-/* Ensure SCHED_NQUEUE is an acceptable value */
-__STATIC_ASSERT(SCHED_NQUEUE <= 8, "SCHED_NQUEUE exceeds max");
-__STATIC_ASSERT(SCHED_NQUEUE > 0, "SCHED_NQUEUE cannot be zero");
-
-struct sched_queue {
- TAILQ_HEAD(, proc) q;
- size_t nthread;
-};
-
-#endif /* !_SYS_SCHEDVAR_H_ */
diff --git a/sys/include/sys/signal.h b/sys/include/sys/signal.h
deleted file mode 100644
index 640773d..0000000
--- a/sys/include/sys/signal.h
+++ /dev/null
@@ -1,46 +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.
- */
-
-#ifndef _SYS_SIGNAL_H_
-#define _SYS_SIGNAL_H_
-
-#if defined(_KERNEL)
-#include <sys/proc.h>
-#endif
-
-#define SIGFPE 8 /* Floating point exception */
-#define SIGKILL 9 /* Kill */
-#define SIGSEGV 11 /* Segmentation violation */
-
-#if defined(_KERNEL)
-void signal_handle(struct proc *curtd);
-void signal_raise(struct proc *to, int signal);
-#endif /* defined(_KERNEL) */
-
-#endif /* !_SYS_SIGNAL_H_ */
diff --git a/sys/include/sys/sio.h b/sys/include/sys/sio.h
deleted file mode 100644
index 6f13a09..0000000
--- a/sys/include/sys/sio.h
+++ /dev/null
@@ -1,57 +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.
- */
-
-#ifndef _SIO_H_
-#define _SIO_H_
-
-#include <sys/types.h>
-
-#if defined(_KERNEL)
-enum sio_type {
- SIO_NONE, /* None specified */
- SIO_USER, /* Userspace related transaction */
- SIO_KERN, /* Kernel transaction */
-};
-
-/*
- * System I/O transaction
- *
- * This structure describes a system I/O transaction
- * and contains common fields that are used
- * with system I/O.
- */
-struct sio_txn {
- void *buf; /* Source/dest buffer */
- off_t offset; /* Transfer offset */
- size_t len; /* Length in bytes */
- enum sio_type type; /* Transaction type */
-};
-
-#endif /* defined(_KERNEL) */
-#endif /* !_SIO_H_ */
diff --git a/sys/include/sys/spinlock.h b/sys/include/sys/spinlock.h
deleted file mode 100644
index 98bc342..0000000
--- a/sys/include/sys/spinlock.h
+++ /dev/null
@@ -1,51 +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.
- */
-
-#ifndef _SYS_SPINLOCK_H_
-#define _SYS_SPINLOCK_H_
-
-#include <sys/types.h>
-
-struct spinlock {
- volatile _Atomic bool lock;
-};
-
-static inline void
-spinlock_acquire(struct spinlock *lock)
-{
- while (__atomic_test_and_set(&lock->lock, __ATOMIC_ACQUIRE));
-}
-
-static inline void
-spinlock_release(struct spinlock *lock)
-{
- __atomic_clear(&lock->lock, __ATOMIC_RELEASE);
-}
-
-#endif /* !_SYS_SPINLOCK_H_ */
diff --git a/sys/include/sys/syscall.h b/sys/include/sys/syscall.h
deleted file mode 100644
index 4ef3666..0000000
--- a/sys/include/sys/syscall.h
+++ /dev/null
@@ -1,68 +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.
- */
-
-#ifndef _SYS_SYSCALL_H_
-#define _SYS_SYSCALL_H_
-
-#include <sys/types.h>
-#if defined(_KERNEL)
-#include <machine/frame.h>
-#endif
-
-/* Do not reorder */
-enum {
- SYS_exit = 1,
- SYS_write,
- SYS_open,
- SYS_close,
- SYS_read,
- SYS_lseek,
- SYS_mmap,
- SYS_munmap,
- SYS_ioctl,
- SYS_execv,
- SYS_mount,
- SYS_reboot,
- __MAX_SYSCALLS
-};
-
-struct syscall_args {
- uint64_t code;
- uint64_t arg0, arg1, arg2;
- uint64_t arg3, arg4, arg5, arg6;
- uint64_t ip;
- uint64_t sp;
-};
-
-#if defined(_KERNEL)
-extern uint64_t(*g_syscall_table[__MAX_SYSCALLS])(struct syscall_args *args);
-void __syscall(struct trapframe *tf);
-#endif
-
-#endif
diff --git a/sys/include/sys/syslog.h b/sys/include/sys/syslog.h
deleted file mode 100644
index 18948ee..0000000
--- a/sys/include/sys/syslog.h
+++ /dev/null
@@ -1,55 +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.
- */
-
-/*
- * For documentation: See syslog(9)
- */
-
-#ifndef _SYS_SYSLOG_H_
-#define _SYS_SYSLOG_H_
-
-#include <sys/types.h>
-#include <stdarg.h>
-#include <dev/vcons/vcons.h>
-
-#if defined(_KERNEL)
-
-#define OMIT_TIMESTAMP "\x01"
-
-void syslog_init(void);
-void syslog_init_proc(void);
-void kprintf(const char *fmt, ...);
-void vkprintf(const char *fmt, va_list *ap);
-
-extern struct vcons_screen g_syslog_screen;
-extern bool g_syslog_use_tty;
-
-#endif /* defined(_KERNEL) */
-
-#endif /* !_SYS_SYSLOG_H_ */
diff --git a/sys/include/sys/system.h b/sys/include/sys/system.h
deleted file mode 100644
index 03ac710..0000000
--- a/sys/include/sys/system.h
+++ /dev/null
@@ -1,43 +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.
- */
-
-#ifndef _SYS_SYSTEM_H_
-#define _SYS_SYSTEM_H_
-
-#include <sys/types.h>
-#include <sys/syscall.h>
-
-#if defined(_KERNEL)
-int copyin(uintptr_t uaddr, void *kaddr, size_t len);
-int copyout(const void *kaddr, uintptr_t uaddr, size_t len);
-int copyinstr(uintptr_t uaddr, char *kaddr, size_t len);
-uint64_t sys_ioctl(struct syscall_args *args);
-#endif
-
-#endif /* !_SYS_SYSTEM_H_ */
diff --git a/sys/include/sys/termios.h b/sys/include/sys/termios.h
deleted file mode 100644
index 1fda67e..0000000
--- a/sys/include/sys/termios.h
+++ /dev/null
@@ -1,69 +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.
- */
-
-#ifndef _SYS_TERMIOS_H_
-#define _SYS_TERMIOS_H_
-
-#if defined(_KERNEL)
-#include <sys/types.h>
-#else
-#include <stdint.h>
-#endif
-
-#define NCCS 20
-
-/*
- * Output flags - software output processing
- */
-#define OPOST 0x00000001U /* Enable output processing */
-#if defined(_KERNEL) || defined(_HYRA_SOURCE)
-#define OCRNL 0x00000002U /* Map NL to CR-NL */
-#endif /* defined(_KERNEL) || defined(_HYRA_SOURCE) */
-
-/*
- * Local flags
- */
-#define ICANON 0x00000001U
-#define ECHO 0x00000002U
-
-typedef uint32_t tcflag_t;
-typedef uint32_t speed_t;
-typedef uint8_t cc_t;
-
-struct termios {
- tcflag_t c_iflag; /* Input flags */
- tcflag_t c_oflag; /* Output flags */
- tcflag_t c_cflag; /* Control flags */
- tcflag_t c_lflag; /* Local flags */
- cc_t c_cc[NCCS]; /* Control chars */
- int c_ispeed; /* Input speed */
- int c_ospeed; /* Output speed */
-};
-
-#endif /* !_SYS_TERMIOS_H_ */
diff --git a/sys/include/sys/timer.h b/sys/include/sys/timer.h
deleted file mode 100644
index e33b2d3..0000000
--- a/sys/include/sys/timer.h
+++ /dev/null
@@ -1,91 +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.
- */
-
-/*
- * For documentation: See timer(9)
- */
-
-#ifndef _SYS_TIMER_H_
-#define _SYS_TIMER_H_
-
-#include <sys/types.h>
-
-/* Timer IDs */
-#define TIMER_SCHED 0x00000000U /* Scheduler reserved timer */
-#define TIMER_GP 0x00000001U /* General purpose timer */
-
-/* Number of timer IDs, adjust when adding timer IDs */
-#define TIMER_ID_COUNT 2
-
-/* Timer registry status */
-#define TMRR_SUCCESS 0x00000000U /* Successful */
-#define TMRR_HAS_ENTRY 0x00000001U /* Already has an entry */
-#define TMRR_INVALID_TYPE 0x00000002U /* Invalid timer id */
-#define TMRR_EMPTY_ENTRY 0x00000003U /* Entry is empty */
-#define TMRR_INVALID_ARG 0x00000004U /* Invalid iface arg */
-
-/* See timer ID defines */
-typedef uint8_t timer_id_t;
-
-/* See timer registry status */
-typedef int tmrr_status_t;
-
-/*
- * Represents a timer, pointer fields
- * are optional and may be set to NULL, therefore
- * it is paramount to verify any function or general
- * pointer field within this struct is checked for
- * a NULL value. Fields should be NULL if the timer
- * driver implementation doesn't implement support
- * for a functionality.
- *
- * XXX: The msleep, usleep, ... functions must return
- * either EXIT_SUCCESS and EXIT_FAILURE from sys/errno.h
- * ONLY.
- */
-struct timer {
- const char *name; /* e.g "HPET" */
- size_t(*calibrate)(void); /* Returns frequency, 0 for unspecified */
- size_t(*get_time_usec)(void); /* Time since init (microseconds) */
- size_t(*get_time_sec)(void); /* Time since init (seconds) */
- int(*msleep)(size_t ms);
- int(*usleep)(size_t us);
- int(*nsleep)(size_t ns);
- void(*periodic_ms)(size_t ms);
- void(*periodic_us)(size_t ms);
- void(*oneshot_ms)(size_t ms);
- void(*oneshot_us)(size_t ms);
- void(*stop)(void);
-};
-
-tmrr_status_t register_timer(timer_id_t id, const struct timer *tmr);
-tmrr_status_t tmr_registry_overwrite(timer_id_t, const struct timer *tmr);
-tmrr_status_t req_timer(timer_id_t id, struct timer *tmr_out);
-
-#endif /* !_SYS_TIMER_H_ */
diff --git a/sys/include/sys/tty.h b/sys/include/sys/tty.h
deleted file mode 100644
index 18583a5..0000000
--- a/sys/include/sys/tty.h
+++ /dev/null
@@ -1,74 +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.
- */
-
-#ifndef _SYS_TTY_H_
-#define _SYS_TTY_H_
-
-#include <sys/termios.h>
-#if defined(_KERNEL)
-#include <sys/types.h>
-#include <sys/spinlock.h>
-#include <sys/device.h>
-#include <dev/vcons/vcons.h>
-#endif
-
-/* TTY ioctl commands */
-#define TCSETS 0x00000000U
-#define TCGETS 0x00000001U
-
-#if defined(_KERNEL)
-#define TTY_RING_SIZE 32
-#define TTY_SOURCE_RAW 0x0001U /* Raw text */
-#define TTY_SOURCE_DEV 0x0002U /* Input from device (e.g keyboard) */
-
-struct tty_ring {
- char data[TTY_RING_SIZE]; /* Ring data */
- off_t enq_index; /* Enqueue index */
- off_t deq_index; /* Dequeue index */
-};
-
-struct tty {
- dev_t id;
- struct vcons_screen *scr; /* Console screen */
- struct tty_ring ring; /* Input ring */
- struct tty_ring outring; /* Output ring */
- struct spinlock rlock; /* Ring lock */
- struct termios termios; /* Termios structure */
- struct device *dev; /* Device pointer */
-};
-
-extern struct tty g_root_tty;
-
-dev_t tty_attach(struct tty *tty);
-int tty_putc(struct tty *tty, int c, int flags);
-int tty_putstr(struct tty *tty, const char *s, size_t count);
-ssize_t tty_flush(struct tty *tty);
-
-#endif /* defined(_KERNEL) */
-#endif /* !_SYS_TTY_H_ */
diff --git a/sys/include/sys/types.h b/sys/include/sys/types.h
deleted file mode 100644
index 8636d4b..0000000
--- a/sys/include/sys/types.h
+++ /dev/null
@@ -1,77 +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.
- */
-
-#ifndef _SYS_TYPES_H_
-#define _SYS_TYPES_H_
-
-#define NULL ((void *)0)
-#define true 1
-#define false 0
-
-typedef signed char int8_t;
-typedef unsigned char uint8_t;
-typedef short int16_t;
-typedef unsigned short uint16_t;
-typedef int int32_t;
-typedef unsigned int uint32_t;
-#if __SIZEOF_LONG__ == 8
-typedef long int64_t;
-typedef unsigned long uint64_t;
-#elif __SIZEOF_LONG__ == 4
-__extension__
-typedef long long int64_t;
-__extension__
-typedef unsigned long long uint64_t;
-#else
-#error "Unsupported long size"
-#endif
-
-#if __SIZEOF_SIZE_T__ == 8
-typedef uint64_t size_t;
-typedef int64_t ssize_t; /* Byte count or error */
-#elif __SIZEOF_SIZE_T__ == 4
-typedef uint32_t size_t;
-typedef int32_t ssize_t; /* Byte count or error */
-#else
-#error "Unsupported size_t size"
-#endif
-
-typedef _Bool bool;
-typedef ssize_t off_t;
-typedef size_t uintptr_t;
-typedef int pid_t;
-typedef int dev_t;
-
-#if defined(_KERNEL)
-typedef uintptr_t vaddr_t; /* Virtual address */
-typedef uintptr_t paddr_t; /* Physical address */
-typedef uint32_t vm_prot_t; /* Access flags */
-#endif /* defined(_KERNEL) */
-
-#endif /* !_SYS_TYPES_H_ */
diff --git a/sys/include/sys/vfs.h b/sys/include/sys/vfs.h
deleted file mode 100644
index 1f7e423..0000000
--- a/sys/include/sys/vfs.h
+++ /dev/null
@@ -1,67 +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.
- */
-
-#ifndef _SYS_VFS_H_
-#define _SYS_VFS_H_
-
-#include <sys/mount.h>
-#include <sys/vnode.h>
-#include <sys/types.h>
-#include <sys/sio.h>
-
-/* Max path length */
-#define PATH_MAX 1024
-
-#if defined(_KERNEL)
-
-extern struct vnode *g_root_vnode;
-
-void vfs_init(void);
-struct fs_info *vfs_byname(const char *name);
-
-int vfs_vget(struct vnode *parent, const char *name, struct vnode **vp);
-int vfs_path_to_node(const char *path, struct vnode **vp);
-
-char *vfs_get_fname_at(const char *path, size_t idx);
-int vfs_rootname(const char *path, char **new_path);
-
-bool vfs_is_valid_path(const char *path);
-ssize_t vfs_hash_path(const char *path);
-
-ssize_t vfs_read(struct vnode *vp, struct sio_txn *sio);
-ssize_t vfs_write(struct vnode *vp, struct sio_txn *sio);
-
-int vfs_getattr(struct vnode *vp, struct vattr *vattr);
-int vfs_open(struct vnode *vp);
-
-int vfs_close(struct vnode *vp);
-uint64_t sys_mount(struct syscall_args *args);
-
-#endif /* defined(_KERNEL) */
-#endif /* !_SYS_VFS_H_ */
diff --git a/sys/include/sys/vnode.h b/sys/include/sys/vnode.h
deleted file mode 100644
index 8201f94..0000000
--- a/sys/include/sys/vnode.h
+++ /dev/null
@@ -1,79 +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.
- */
-
-#ifndef _SYS_VNODE_H_
-#define _SYS_VNODE_H_
-
-#include <sys/types.h>
-#include <sys/queue.h>
-#include <sys/mount.h>
-#include <vm/obj.h>
-#include <sys/sio.h>
-
-struct vnode;
-struct vattr;
-
-struct vops {
- int(*vget)(struct vnode *parent, const char *name, struct vnode **vp);
- int(*read)(struct vnode *vp, struct sio_txn *sio);
- int(*write)(struct vnode *vp, struct sio_txn *sio);
- int(*getattr)(struct vnode *vp, struct vattr *vattr);
- int(*open)(struct vnode *vp);
- int(*close)(struct vnode *vp);
-};
-
-struct vattr {
- size_t size; /* File size in bytes */
- int type; /* Vnode type */
-};
-
-struct vnode {
- int type;
- int flags;
- struct vm_object *vmobj;
- struct mount *mp; /* Ptr to vfs vnode is in */
- struct vops *vops;
- struct vnode *parent;
- struct fs_info *fs; /* Filesystem this vnode belongs to, can be NULL */
- void *data; /* Filesystem specific data */
-};
-
-/*
- * Vnode type flags
- */
-#define VREG 0x01 /* Regular file */
-#define VDIR 0x02 /* Directory */
-#define VCHR 0x03 /* Character device */
-#define VBLK 0x04 /* Block device */
-
-#if defined(_KERNEL)
-int vfs_alloc_vnode(struct vnode **vnode, struct mount *mp, int type);
-#endif
-
-#endif
diff --git a/sys/include/vm/dynalloc.h b/sys/include/vm/dynalloc.h
deleted file mode 100644
index 44d2f5a..0000000
--- a/sys/include/vm/dynalloc.h
+++ /dev/null
@@ -1,44 +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.
- */
-
-/*
- * For documentation: See dynalloc(9)
- */
-
-#ifndef _VM_DYNALLOC_H_
-#define _VM_DYNALLOC_H_
-
-#include <sys/types.h>
-
-void *dynalloc(size_t sz);
-void *dynalloc_memalign(size_t sz, size_t align);
-void *dynrealloc(void *old_ptr, size_t newsize);
-void dynfree(void *ptr);
-
-#endif /* !_VM_DYNALLOC_H_ */
diff --git a/sys/include/vm/fault.h b/sys/include/vm/fault.h
deleted file mode 100644
index f0e308c..0000000
--- a/sys/include/vm/fault.h
+++ /dev/null
@@ -1,38 +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.
- */
-
-#ifndef _VM_FAULT_H_
-#define _VM_FAULT_H_
-
-#include <sys/types.h>
-#include <vm/pmap.h>
-
-int vm_fault(vaddr_t va, vm_prot_t access_type);
-
-#endif /* !_VM_FAULT_H_ */
diff --git a/sys/include/vm/map.h b/sys/include/vm/map.h
deleted file mode 100644
index a1e74d9..0000000
--- a/sys/include/vm/map.h
+++ /dev/null
@@ -1,84 +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.
- */
-
-#ifndef _VM_MMAP_H_
-#define _VM_MMAP_H_
-
-#include <sys/types.h>
-#include <sys/cdefs.h>
-#include <sys/queue.h>
-#include <sys/syscall.h>
-#include <sys/spinlock.h>
-#include <vm/pmap.h>
-#include <vm/vm.h>
-
-#define MAP_SHARED 0x0001
-#define MAP_PRIVATE 0x0002
-#define MAP_ANONYMOUS 0x0010
-#define MAP_FAILED ((void *)-1)
-
-/* Memory map table entry count */
-#define MTAB_ENTRIES 32
-
-struct vm_object;
-
-struct vm_mapping {
- TAILQ_ENTRY(vm_mapping) link;
- struct vm_range range;
- struct vm_object *vmobj;
- paddr_t physmem_base;
- vm_prot_t prot;
-
- /* Private */
- size_t vhash; /* Virtual address hash */
-};
-
-typedef TAILQ_HEAD(, vm_mapping) vm_mapq_t;
-
-struct vm_mapspace {
- vm_mapq_t mtab[MTAB_ENTRIES]; /* Map table */
- size_t map_count;
-};
-
-/* Mapping operations */
-int vm_map_destroy(struct vas vas, vaddr_t va, size_t bytes);
-int vm_map_create(struct vas vas, vaddr_t va, paddr_t pa, vm_prot_t prot,
- size_t bytes);
-
-/* Syscalls */
-uint64_t sys_mmap(struct syscall_args *args);
-uint64_t sys_munmap(struct syscall_args *args);
-
-/* Mapespace operations */
-void vm_mapspace_insert(struct vm_mapspace *ms, struct vm_mapping *mapping);
-void vm_mapspace_remove(struct vm_mapspace *ms, struct vm_mapping *mapping);
-struct vm_mapping *vm_mapping_fetch(struct vm_mapspace *ms, vaddr_t va);
-void vm_free_mapq(vm_mapq_t *mapq);
-
-#endif /* !_VM_MMAP_H_ */
diff --git a/sys/include/vm/obj.h b/sys/include/vm/obj.h
deleted file mode 100644
index 6e24516..0000000
--- a/sys/include/vm/obj.h
+++ /dev/null
@@ -1,61 +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.
- */
-
-#ifndef _VM_OBJ_H_
-#define _VM_OBJ_H_
-
-#include <sys/spinlock.h>
-#include <sys/types.h>
-#include <sys/vnode.h>
-#include <vm/map.h>
-#include <vm/pager.h>
-
-struct vm_object {
- struct spinlock lock; /* Protects this object */
- struct vm_mapspace mapspace; /* Mapspace this object points to */
- struct vm_pagerops *pgops; /* Pager operations */
-
- uint8_t is_anon : 1; /* Is an anonymous mapping */
- uint8_t demand : 1; /* Only mapped upon access */
- int ref; /* Ref count */
- struct vnode *vnode; /* Only used if `is_anon` is 0 */
-};
-
-#define vm_object_ref(OBJPTR) (++(OBJPTR)->ref)
-#define vm_object_unref(OBJPTR) do { \
- if ((OBJPTR)->ref > 0) { \
- --(OBJPTR)->ref; \
- } \
- } while (0);
-
-size_t vm_obj_count(void);
-int vm_obj_init(struct vm_object **res, struct vnode *vnode);
-int vm_obj_destroy(struct vm_object *obj);
-
-#endif /* !_VM_OBJ_H_ */
diff --git a/sys/include/vm/page.h b/sys/include/vm/page.h
deleted file mode 100644
index 80fa74f..0000000
--- a/sys/include/vm/page.h
+++ /dev/null
@@ -1,41 +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.
- */
-
-#ifndef _VM_PAGE_H_
-#define _VM_PAGE_H_
-
-#include <sys/types.h>
-
-struct vm_page {
- paddr_t physaddr;
-};
-
-void vm_zero_page(void *page, size_t page_count);
-
-#endif /* !_VM_PAGE_H_ */
diff --git a/sys/include/vm/pager.h b/sys/include/vm/pager.h
deleted file mode 100644
index e57afe1..0000000
--- a/sys/include/vm/pager.h
+++ /dev/null
@@ -1,51 +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.
- */
-
-#ifndef _VM_PAGER_H_
-#define _VM_PAGER_H_
-
-#include <sys/types.h>
-#include <vm/page.h>
-
-struct vm_object;
-
-struct vm_pagerops {
- int(*get)(struct vm_object *obj, off_t off, size_t len, struct vm_page *pg);
- int(*store)(struct vm_object *obj, off_t off, size_t len, struct vm_page *pg);
- /* TODO: Remove this and add demand paging */
- int(*get_paddr)(struct vm_object *obj, paddr_t *paddr, vm_prot_t prot);
-};
-
-extern struct vm_pagerops g_vnode_pagerops;
-extern struct vm_pagerops g_dev_pagerops;
-
-int vm_pager_get(struct vm_object *obj, off_t off, size_t len, struct vm_page *pg);
-int vm_pager_paddr(struct vm_object *obj, paddr_t *paddr, vm_prot_t prot);
-
-#endif /* !_VM_PAGER_H_ */
diff --git a/sys/include/vm/physseg.h b/sys/include/vm/physseg.h
deleted file mode 100644
index 956f82f..0000000
--- a/sys/include/vm/physseg.h
+++ /dev/null
@@ -1,48 +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.
- */
-
-#ifndef _VM_VM_PHYSSEG_H_
-#define _VM_VM_PHYSSEG_H_
-
-#include <sys/types.h>
-
-struct physmem_stat {
- size_t reserved_kib; /* Reserved memory */
- size_t total_kib; /* Total memory */
- size_t avl_kib; /* Available memory */
- size_t alloc_kib; /* Allocated physical memory */
-};
-
-void vm_physseg_init(void);
-uintptr_t vm_alloc_pageframe(size_t count);
-
-void vm_free_pageframe(uintptr_t base, size_t count);
-struct physmem_stat vm_phys_memstat(void);
-
-#endif /* !_VM_VM_PHYSSEG_H_ */
diff --git a/sys/include/vm/pmap.h b/sys/include/vm/pmap.h
deleted file mode 100644
index cb18885..0000000
--- a/sys/include/vm/pmap.h
+++ /dev/null
@@ -1,117 +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.
- */
-
-#ifndef _VM_PMAP_H_
-#define _VM_PMAP_H_
-
-/*
- * Each architecture is expected to implement
- * this header. It should contain a `struct vas'
- * which will contain information about a VAS
- * (virtual address space)
- *
- * On AMD64 this struct contains: PML4, etc
- *
- * XXX: Compiler errors pointing to this include means you
- * forgot to implement it!!!
- *
- * `struct vas' MUST have a `struct spinlock lock' field!!!
- */
-#include <machine/vas.h>
-
-#include <vm/tlsf.h>
-#include <sys/types.h>
-#include <sys/spinlock.h>
-
-/* prot flags for mappings */
-#define PROT_WRITE __BIT(0) /* Writable */
-#define PROT_EXEC __BIT(1) /* Executable */
-#define PROT_USER __BIT(2) /* User accessible */
-
-/* Caching types */
-#define VM_CACHE_UC 0x00000U /* Uncachable */
-#define VM_CACHE_WT 0x00001U /* Write-through */
-
-#define is_vas_valid(vas) (vas.top_level != 0)
-
-/*
- * vm_ctx - Per core virtual memory context
- */
-struct vm_ctx {
- uintptr_t dynalloc_pool_phys;
- size_t dynalloc_pool_sz; /* In bytes */
- tlsf_t tlsf_ctx;
- struct spinlock dynalloc_lock;
-};
-
-/*
- * Mark a virtual address with a specific caching
- * type.
- */
-int pmap_set_cache(struct vm_ctx *, struct vas, vaddr_t, int);
-
-/*
- * Create a virtual address space
- * and return the descriptor.
- */
-int pmap_create_vas(struct vm_ctx *, struct vas *);
-
-/*
- * Switch the current virtual address space
- * to another.
- */
-void pmap_switch_vas(struct vm_ctx *, struct vas);
-
-/*
- * Read virtual address space descriptor
- * and return it.
- */
-struct vas pmap_read_vas(void);
-
-/*
- * Map a physical address to a virtual address.
- */
-int pmap_map(struct vm_ctx *, struct vas, vaddr_t, paddr_t, vm_prot_t);
-
-/*
- * Get rid of a virtual address space and free
- * resources.
- */
-int pmap_free_vas(struct vm_ctx *, struct vas);
-
-/*
- * Unmap a page.
- */
-int pmap_unmap(struct vm_ctx *, struct vas, vaddr_t);
-
-/*
- * Architecture specific init code for pmap
- */
-int pmap_init(struct vm_ctx *);
-#endif /* _VM_PMAP_H_ */
diff --git a/sys/include/vm/tlsf.h b/sys/include/vm/tlsf.h
deleted file mode 100644
index e9b5a91..0000000
--- a/sys/include/vm/tlsf.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef INCLUDED_tlsf
-#define INCLUDED_tlsf
-
-/*
-** Two Level Segregated Fit memory allocator, version 3.1.
-** Written by Matthew Conte
-** http://tlsf.baisoku.org
-**
-** Based on the original documentation by Miguel Masmano:
-** http://www.gii.upv.es/tlsf/main/docs
-**
-** This implementation was written to the specification
-** of the document, therefore no GPL restrictions apply.
-**
-** Copyright (c) 2006-2016, Matthew Conte
-** All rights reserved.
-**
-** Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * 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.
-** * Neither the name of the copyright holder 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 MATTHEW CONTE 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.
-*/
-
-#include <stddef.h>
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/* tlsf_t: a TLSF structure. Can contain 1 to N pools. */
-/* pool_t: a block of memory that TLSF can manage. */
-typedef void* tlsf_t;
-typedef void* pool_t;
-
-/* Create/destroy a memory pool. */
-tlsf_t tlsf_create(void* mem);
-tlsf_t tlsf_create_with_pool(void* mem, size_t bytes);
-void tlsf_destroy(tlsf_t tlsf);
-pool_t tlsf_get_pool(tlsf_t tlsf);
-
-/* Add/remove memory pools. */
-pool_t tlsf_add_pool(tlsf_t tlsf, void* mem, size_t bytes);
-void tlsf_remove_pool(tlsf_t tlsf, pool_t pool);
-
-/* malloc/memalign/realloc/free replacements. */
-void* tlsf_malloc(tlsf_t tlsf, size_t bytes);
-void* tlsf_memalign(tlsf_t tlsf, size_t align, size_t bytes);
-void* tlsf_realloc(tlsf_t tlsf, void* ptr, size_t size);
-void tlsf_free(tlsf_t tlsf, void* ptr);
-
-/* Returns internal block size, not original request size */
-size_t tlsf_block_size(void* ptr);
-
-/* Overheads/limits of internal structures. */
-size_t tlsf_size(void);
-size_t tlsf_align_size(void);
-size_t tlsf_block_size_min(void);
-size_t tlsf_block_size_max(void);
-size_t tlsf_pool_overhead(void);
-size_t tlsf_alloc_overhead(void);
-
-/* Debugging. */
-typedef void (*tlsf_walker)(void* ptr, size_t size, int used, void* user);
-void tlsf_walk_pool(pool_t pool, tlsf_walker walker, void* user);
-/* Returns nonzero if any internal consistency check fails. */
-int tlsf_check(tlsf_t tlsf);
-int tlsf_check_pool(pool_t pool);
-
-#if defined(__cplusplus)
-};
-#endif
-
-#endif
diff --git a/sys/include/vm/vm.h b/sys/include/vm/vm.h
deleted file mode 100644
index 1c23b8a..0000000
--- a/sys/include/vm/vm.h
+++ /dev/null
@@ -1,78 +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.
- */
-
-/*
- * For documentation: See vm(9)
- */
-
-#ifndef _VM_H_
-#define _VM_H_
-
-#include <sys/types.h>
-#include <sys/limine.h>
-#include <sys/cdefs.h>
-#include <vm/page.h>
-#include <vm/pmap.h>
-#include <vm/physseg.h>
-
-extern volatile struct limine_hhdm_request g_hhdm_request;
-
-#define VM_HIGHER_HALF (g_hhdm_request.response->offset)
-
-#define PHYS_TO_VIRT(phys) (void *)((uintptr_t)phys + VM_HIGHER_HALF)
-#define VIRT_TO_PHYS(virt) ((uintptr_t)virt - VM_HIGHER_HALF)
-
-struct vm_range {
- uintptr_t start;
- uintptr_t end;
-};
-
-struct vm_memstat {
- struct physmem_stat pmem_stat;
- size_t vmobj_cnt;
-};
-
-/*
- * Returns the machine's pagesize:
- *
- * XXX TODO: This needs to be moved to vmm_init.c
- * while returning a non-constant value.
- */
-static inline size_t
-vm_get_page_size(void)
-{
- return 4096;
-}
-
-void vm_init(void);
-struct vm_ctx *vm_get_ctx(void);
-struct vas vm_get_kvas(void);
-struct vm_memstat vm_memstat(void);
-
-#endif /* !_VM_H_ */