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 are not required to understand every line of code in this crate. Most of its implementation details are not directly covered in exams or projects. However, some parts that you will explicitly use during the implementation (e.g., x86 register related contents) may be included in exams.

If you want to go deeper into the low-level of the operating system, you may explore the internals of this crate along 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.