Crate abyss

Crate abyss 

Source
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.
print
Prints out the message.
println
Prints out the message with a newline.
warning
Display a warning message.

Structs§

GeneralPurposeRegisters
X86_64’s general purpose registers.
PFErrorCode
List of error codes on page fault.
Pa
Represents a physical address.
Registers
x86_64 Trap frame.
SpinLock
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.