summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
25 hoursbuild: Fix indentationexptIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
25 hoursproject: Bump version to 1.7Ian Moffett
- Introduce new Hyra build architecture (hyra-build.sh) [0] - Optimize console and logging [1] - Add SATA caching support via the DCDR framework [2] - Improve GDT implementation [3] - Add machine independent interrupt registration [4] - Add uACPI port as well as an acpi_sleep() interface [5] Commits referenced: [0]: 7f52818ebf05f056eb31cdcb09fbc564a4ece6c4 [1]: 06260dd6aeedc5c4ab0d42215fc38ab459365ce3 [2]: def5182fdeb9ea60df0d3de6365dfa368943c3f0 [3]: 92e385d64d9883896b4cf55e7e0d5e110621cb0c [4]: 5dfbc067d095b2bbaefad6d77469f4d701bdd539 [5]: 08eeb79db14145d83578025e1f0e7f7af460ee25 Signed-off-by: Ian Moffett <ian@osmora.org>
25 hoursproject: Build Hyra with ./hyra-install.shIan Moffett
- Deprecate *direct* use of 'make' for building world - Add hyra-build.sh to replace direct use of 'make' - Remove make vars that will no longer be used - Update workflow script for GitHub mirror - Add install media detection define (_INSTALL_MEDIA) - Add install media detection logs - Update build instructions within README.md Signed-off-by: Ian Moffett <ian@osmora.org>
3 dayskernel: Optimize console & loggingQuinn Stephens
* Modified draw loops to use `fbdev_get_index()` less often. * Created `cons_fast_putch()`, then used it to implement `cons_putch()` and `cons_putstr()`. This way, when printing an entire string, the lock acquire/release and cursor hide/show will only happen once, instead of once per character. * Modified `syslog_write()` to use `cons_putstr()`. Signed-off-by: Quinn Stephens <quinn@osmora.org> Signed-off-by: Ian Moffett <ian@osmora.org>
3 dayskernel: ahci: Create a DCDR per HBA deviceIan Moffett
Optimize reading of logical blocks within SATA drives by giving each device descriptor a drive cache descriptor ring. Signed-off-by: Ian Moffett <ian@osmora.org>
3 dayskernel: dcdr: Overwrite existing DCDs if requiredIan Moffett
When writing to a drive, existing cached entries must be written through so DCD reads don't give stale data. Signed-off-by: Ian Moffett <ian@osmora.org>
3 dayskernel/amd64: Improve GDT implementationQuinn Stephens
* Switched to using macros for the GDT entry bits, to improve clarity and make the code easier to modify. Also got rid of some junk values in a few of the entries. * Shrunk the GDT data array from 256 entries to 7 (GDT_ENTRY_COUNT) since the GDT will only ever use 7 of the entries for now. * Aligned the GDT using __cacheline_aligned, because the GDT entries will be read every time a segment selector is loaded. * Modified code dealing with the GDTR to just use `g_gdtr`, since the same GDT/GDTR is always used. * In `gdt_load()`, changed `eax` -> `ax`, since segment registers are only 16 bits. Also replaced the `gdtr` to just use `g_gdtr`. Additionally, used the inline assembly formatting to supply segment selectors with KERNEL_CS/DS macros. Signed-off-by: Quinn Stephens <quinn@osmora.org> Signed-off-by: Ian Moffett <ian@osmora.org>
3 dayskernel/amd64: i8042: Remove conf r/w for nowIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 dayskernel: xhci: Add runtime register offset definesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 dayskernel: xhci: Remove unused includeIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 dayskernel: Enable interrupts before driversIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
4 dayskernel/amd64: i8042: Simplify init + handlingIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 dayskernel/amd64: Unset CPU_IRQ(1) at kbd handler endIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 dayskernel/amd64: Deprecate intr_alloc_vector()mainIan Moffett
Replace intr_alloc_vector() with a cleaner and more machine independent intr_register() Signed-off-by: Ian Moffett <ian@osmora.org>
6 dayskernel/amd64: conf: Default to a nice green colorIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysusr: osh: Add "reboot" and "shutdown" commandsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: libc: Add cpu_reboot()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskernel: syscall: Add SYS_reboot syscallIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskernel/amd64: Add reboot RESET and POWEROFF flagsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskernel: acpi: Add acpi_sleep()Ian Moffett
Introduce function for calling ACPI \\_S<n> objects via uACPI Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskernel: sched: Rewrite context switch logicIan Moffett
Simplify and improve context switch logic, also stops the LAPIC from being spammed with register accesses. This also updates the default quantum to 9000 us to avoid cache thrashing and all kinds of other nasty things. Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskernel: acpi: Add stub power button handlerIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskernel/amd64: i8042: Reduce logging verbosityIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskernel/amd64: mp: Improve AP bootstrap logicIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskernel/amd64: Stop sycning per timer interruptIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel: acpi: Add uACPI portIan Moffett
See https://github.com/uACPI/uACPI/ Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel: pci: Add pci_add_device()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel: pci: Add segment fieldIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel: acpi: Add acpi_rsdp()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel/amd64: ioapic: Do not include acpi/tables.hIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel: Add compat headersIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel: lib: Add memmove()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel: exit: Detach proc on exitIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel: sched: Add sched_detach()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel: sched: Switch on sched_yield()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel: sched: Fix sched dequeue loopIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel: spawn: Exit on execve() failureIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel: cons: Add lock to console bufferIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel/amd64: trap: Remove trap_quirks()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel/amd64: trap: Clear interrupts on trap entryIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel: Add cpu_halt_others() and harden panic()Ian Moffett
Ensure interrupts are disabled at the start of panic() to prevent any interrupts from further degrading the state of the system. Also adds a newline before "panic: " to clean up the logs. Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel: syslog: Acquire lock before timestampIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel: exit: Remove extra newlineIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
9 daysbuild: Add Makefile for usr.sbin and usr.binIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel: vfs: Do sizeof on pathbufIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel: spawn: Add proper spawn impl + SYS_spawnIan Moffett
This commit introduces a more complete spawn implementation as well as the SYS_spawn syscall and a libc interface. Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel: proc: Handle parent exitIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
10 dayskernel: proc: Do not introduce fork()Ian Moffett
Simplicity is divine, fork() may be powerful but is no longer simple. It became a thing in the late 70s during the early days of UNIX when computing was simple, when CPUs were only 16-bits, MMUs were not prevalent and RAM was only 512 KB. However it isn't 1971 anymore, process management, CPUs and memory architecture has advanced significantly since. This commit ceases work on the fork() syscall as implementing it would only introduce unnecessary complexity, security issues, hefty processing overhead and would perpetuate what should now be considered legacy. The current best alternative would be providing a form of process spawning as well as a mechanism to wait for the child process to complete. Signed-off-by: Ian Moffett <ian@osmora.org>
11 dayskernel: syscall: Check for _OLIBC or _KERNELIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
11 dayskernel: mach: Add TF_IP() macroIan Moffett
Add TF_IP() to extract the instruction pointer from a trapframe between architectures. Signed-off-by: Ian Moffett <ian@osmora.org>