summaryrefslogtreecommitdiff
path: root/src/sys/include
AgeCommit message (Collapse)Author
2025-09-20kern: pci: Handle base address registers (BARs)Ian Moffett
This commit handles base address registers by storing them in a bar array within the PCI device structure. We also introduced a helper header to perform operations with BARs such as getting the length of their underlying region Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern: dma: Add DMA frame allocatorIan Moffett
Introduce a special frame allocation utility to reserve memory for DMA done between devices and the host. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern: proc: Keep track of mapped areas with rangesIan Moffett
This commit adds a virtual memory range queue to the process descriptor in order to keep track of mapped pages and free their respective frames upon program exit. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern/amd64: proc: Add proc_self()Ian Moffett
Introduce a new proc_self() function to get the current running process on the current CPU core. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern: pci: Implement PCI leaf drivers + AHCI stubIan Moffett
This commit introduces the support for having PCI specific device drivers while providing a tiny AHCI stub that logs the existence of the host bus adapter. The PCI bus itself has a driver for enumerating the devices and associating a specific driver to it, the device drivers themselve must advertise themselves to the PCI driver. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern: Add '.modules' section to kernel binaryIan Moffett
The '.modules' section stores the list of modules to bring up on early boot. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kernel: pci: Add PCI lookup routineIan Moffett
This commit adds a new 'lookup_type_t' for representing the various kinds of lookups one can perform on the PCI bus. The actual code to drive the lookups is exposed as the pci_bus_lookup() routine. When doing a lookup of a PCI device, you must specify the kind of lookup to perform. If a PCI_LU_CLASSREV is requested, only the PCI class and subclass fields in the PCI lookup are used. If the PCI_LU_VENDEV is requested, only the PCI vendor ID and device ID are used in the lookup. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern: pci: Add 'class' and 'subclass' to deviceIan Moffett
This commit adds the PCI class and revion (subclass) IDs to the PCI device descriptor provided by L5. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern: vfs: Add namei() prototype functionIan Moffett
Introduce a namei() prototype function to build upon when implementing core namei() logic. The prototype simply implemenets the path parsing and mimicks a UNIX-like (shell) namei output. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern: vfs: Add mountpoint lookup helperIan Moffett
Add helper function to lookup mountpoints such as '/' Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kernel: vfs: Add initial mount code + mount initrdIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kernel: mount: Add mountpoint allocationIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern: vfs: Add path component counterIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18kern: vfs: Add initial vfsops, and mount codeIan Moffett
This commit introduces the groundwork for mountpoints, filesystems and the VFS as a whole. OMAR is now initialized as its own filesystem by the VFS Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18kern: vfs: Add vnode allocation / release routinesIan Moffett
Introduce routines to allocate (create) and deallocate (destroy) virtual file nodes. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18kern: vfs: Add initial vnode definitionsIan Moffett
A vnode is simply an object used when referencing filesystem objects. This marks the start of development for the L5 Virtual File System Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18kern: pci: Implement device list as TAILQIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18kern: Bump L5 version to v0.0.2Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18kern: pci: Add initial bus enumerationIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18kern: io: Add initial PCI CAM driverIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: Implement syscall domains and windowsIan Moffett
A syscall domain in the L5 kernel is a fixed list of "syscall windows", each syscall window represents a specific platform and/or syscall model. A platform latch within each domain determines which window / platform should be visible. Since syscall domains are per-process, these changes are local to their respective processes. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern: Add syscall entry and SYS_exit syscallIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17sys: proc: Wrap structures in _KERNEL guardIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: proc: Add proc_kill() routineIan Moffett
Add a new function to kill processes and clean them up. They will then be marked as EXITING and it is up to the parent to do the rest. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: mmu: Add mmu_free_vas() to cleanup VASIan Moffett
Introduce a new resource deallocation function that destroys a specified virtual address space. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17sys: proc: Add docs for extra proc fieldsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: proc: Add initial context switch logicIan Moffett
This commit introduces new functions that will be useful for having multiple processes run on the system. - Add md_proc_yield() - Add md_proc_kick() - Add md_sched_switch() Signed-off-by: Ian Moffett <ian@osmora.org>
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>