Age | Commit message (Collapse) | Author |
|
* 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>
|
|
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>
|
|
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>
|
|
Add TF_IP() to extract the instruction pointer from a trapframe between
architectures.
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>
|
|
Kernel logs must now all be lowercase for consistency. A new style
called Peripheral Description Notation (PDN) has also been introduced
to describe devices.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces a bus resource abstraction. A bus resource
encapsulates bus specific information and semantics. Along with
abstracting away bus specific details and providing an overall
smoother interface, this additionally provides flexibility, access
control and security by keeping track of permissions and allowing
things to be turned on or off.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Was supposed to happen on Jan 1, sorry! Happy late new year!
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
- Use only defines in frame.h
- Improve handling of trap error codes
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 changes how reboot() handles REBOOT_HALT. Now instead of one
core being halted, all cores will be halted through an IPI to a halt
vector.
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 usage of swapgs to switch out the GS register
with the user GS register. An md_td_kick() function is also introduced
to start up user threads. The this_cpu() function uses the GS register
to read the current CPU structure using a new "self" field.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add macros that perform certain operations before invoking the actual
handler. This will be useful in the future for more complicated
operations that need to be done before the handler is ran.
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>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|