Age | Commit message (Collapse) | Author |
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
- 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>
|
|
- 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>
|
|
* 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>
|
|
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>
|
|
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>
|
|
* 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>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Replace intr_alloc_vector() with a cleaner and more machine independent
intr_register()
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce function for calling ACPI \\_S<n> objects via uACPI
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
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>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
See https://github.com/uACPI/uACPI/
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
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>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
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>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
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>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add TF_IP() to extract the instruction pointer from a trapframe between
architectures.
Signed-off-by: Ian Moffett <ian@osmora.org>
|