summaryrefslogtreecommitdiff
path: root/src/sys
AgeCommit message (Collapse)Author
2025-09-20kern: cons: Constantly update ch x/y in loopIan Moffett
If we do not do this, we'll get stale x/y values the the characters will never advance position when using multichar strings Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern: proc: Move sys_exit() to sys/compat/unix/*Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern: pci: Add bus framework and PCI BAR mapperIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern: pci: Assume error if barreg is zeroIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern: pci: Add further info of pci_bus_lookup()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern: pci: Add PCI_BAR_IO() checker in pci/cam.hIan Moffett
The PCI_BAR_IO() checks if the BAR is an I/O type BAR. The value 1 is returned if true, otherwise 0 if it is a memory type BAR. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern/amd64: mmu: Add page-level cacheability attrsIan Moffett
This commit adds support for page-level cacheability attributes. We have added the pmap_set_cache() as well as some MMU_CACHE_* bits Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern: pci: Ensure lookup data is copied on attachIan Moffett
When an attached device is detected, the driver will need information about the PCI device for the bring up process. Signed-off-by: Ian Moffett <ian@osmora.org>
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: init: Initialize generic driversIan Moffett
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-19kern/amd64: build: Ensure .a libs retain sectionsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern: pci: Add module creditIan Moffett
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-19kernel: vfs: Handle root path in vfs_cmt_cnt()Ian 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: pci: Make max buses to scan configurableIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18build: Allow each subsystem to have their own confIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18kern: pci: Handle logging of device and vendor IDIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18kern: pci: Get device_id with 'vend_dev[31:16]'Ian 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: syscall: Use current platform latchIan Moffett
Use the current platform latch when selecting a syscall window from the current domain. 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: init: Add copyrightIan 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: init: Load /usr/sbin/init after bootIan Moffett
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: sched: Write proc result in sched_deq()Ian Moffett
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-17kernel/amd64: mp: Use NULL instead of wrappingIan Moffett
It is best to return NULL when there is no next CPU instead of wrapping so we have an indicator at where the list ends. 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>