Expand description
The abyss of kernel that operates hardwares.
This crate contains collections of hardware communications.
You might see the codes of this code for your personal study for how x86_64 architecture cooperates with operating systems, HOWEVER, most of codes in this crate exceeds the scope of the CS330 curriculum, which is why this crate is named “abyss”.
In other words, you do NOT have to see codes in this crate. Neither in
exams or projects, this crate is definitely NOT a coverage. Nonetheless,
if you want to go deeper into the low-level of the operating system, you may
see the internal of this crate with the OSDev Wiki.
IN PARTICULAR, YOU ARE NOT SUPPOSED TO DIRECTLY USE THE MODULES OF THIS CRATE TO IMPLEMENT THE KEOS PROJECT. We are not responsible for any problems occured by (mis)using codes of this crate directly.
Instead, you are supposed to see keos crate to see which modules (or
functions) are available for implementing KeOS Project.
Macros§
- debug
- Display a debug message.
- info
- Display an information message.
- mmio
- Make mmio register groups.
- Prints out the message.
- println
- Prints out the message with a newline.
- warning
- Display a warning message.
Structs§
- General
Purpose Registers - X86_64’s general purpose registers.
- PFError
Code - List of error codes on page fault.
- Pa
- Represents a physical address.
- Registers
- x86_64 Trap frame.
- Spin
Lock - A mutual exclusion primitive useful for protecting shared data
- Va
- Represents a virtual address.
Constants§
- MAX_CPU
- Maximum number of CPU the kernel can support.