summaryrefslogtreecommitdiff
path: root/src/sys/include
AgeCommit message (Collapse)Author
2025-09-17kern/amd64: cpu: Add process load balancingIan Moffett
This commit introduces load balancing of processes between cores by using a scalable "CPU arbiter" which decides how to fetch the next core descriptor. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17sys: cpuvar: Mark machine dependent routines as MDIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern: init: Add L5 bootup logoIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: mp: Add cpu_get() routineIan Moffett
This commit introduces a new cpu_get() function to acquire a specific CPU by using a logical ID as an index. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: mdcpu: Document GDT fields in mdcoreIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: cpu: Make GDT per-cpu to match TSSIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern: proc: Add initialization code for ring 3Ian Moffett
This commit introduces several new functions for switching the processor into a ring three context along with its task's respective process descriptors to be implemented correctly. - Add md_set_ip() to update proc instruction pointer - Add stack definitions - Add stack mapping logic ... Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: Add 'curproc' field to 'pcore'Ian Moffett
Add a current processor field to the processor core descriptor in order to keep track of which process is currently running. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: proc: Store trapframe in PCBIan Moffett
Store a trapframe in the process control block so that state may be saved and restored between contexts Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern: vm: Implement lazy allocation for vm_map()Ian Moffett
Introduce lazy allocation in the vm_map() function. When passing a zero value to any of the base address fields of the map spec, allocate our own memory. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: mmu: Add routine to switch VASIan Moffett
This commit introduces a new mmu_write_vas() function to allow the caller to change the virtual address space used by the current processor. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern: Add initial ELF loader sourcesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16sys: Add sys/elf.hIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern: proc: Add initial proc init + PCB codeIan Moffett
This commit introduces the initial logic for putting process descriptors in an initialized state. This commit also introduces the process control block definition. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: mmu: Add mmu_new_vas() routineIan Moffett
This commit introduces the ability to create new virtual address spaces for user programs and a zeroed lower half. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16sys: Add sys/atomic.hIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15sys: mman: Add PROT_USER flagIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: os: Introduce support for OMAR initramfsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: vm: Add MI vm_map() functionIan Moffett
Introduce a machine independent mechanism to map multiple pages through the new vm_map() function Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern/amd64: cpu: Add initial SMP startup codeIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15sys: limits: Add CPU_MAX limitIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: Add initial scheduler skeletonIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15sys: Add sys/queue.hIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern/amd64: lapic: Add LAPIC timer supportIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern/amd64: intel: Add i8254 PIT driverIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kernel/amd64: Add task state segment logicIan Moffett
This commit implements the task state segment and splits up processor initialization into two seperate stages. The cpu_conf() function is apart of the first stage and sets up things that should be going by the time the kernel is started / early init. The cpu_init() function runs later functions that initialize further platform specific subsystems. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern/amd64: lapic: Initialize percore Local APICIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kernel/amd64: Move ioapic_read_madt() to acpi_subrIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern/amd64: ioapic: Add IRQ to vector routingIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern/amd64: Add I/O APIC initialization codeIan Moffett
This commit introduces the initial I/O APIC driver code that does basic initialization i.e., grabbing base address from MADT, masking each pin, etc. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: Add sys/mmio.hIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: Initialize ACPI early on during bootIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: Add initial ACPI implIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: acpi: Add ACPI table definitionsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern/amd64: boot: Disable the i8259 chip on bootIan Moffett
To avoid interrupt conflicts on some machines with the I/O APIC, disable the legacy i8259 chip by default Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern/amd64: Add exception handlersIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: Add traprame related MD headersIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern/amd64: Add interrupt descriptor table coreIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15sys: Add sys/ascii.hIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: cons: Finish string writing logicIan Moffett
- Wrap on X overflow - Wrap on Y overflow - Keep track of max console width and height - Add console enable/disable control Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15sys: syslog: Wrap routines in _KERNEL guardIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: cons: Add console string writing routineIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: io: Implement initial console logicIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15os/amd64: Reduce coupling with VAS structureIan Moffett
This commit moves the VAS structure into a standard MD layer side and makes it accessible through a standard MI layer header. This indirection reduces coupling so that the codebase wont break if a name change or anything is needed. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15os/amd64: Make MMU header standard per archIan Moffett
Lunos's virtual memory system is split into two parts, the machine dependent MMU layer and the machine independent layer. The MMU side exposes a standard bridge header that allows the MI layer to interface with the MD layer. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: os: Add initial kalloc subsystemIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: Add TLSF allocator portIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15kern: os: Add assert.hIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-15sys: Add sys/limits.hIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-14sys: cdefs: Keep offsetof as-isIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>