aboutsummaryrefslogtreecommitdiff
path: root/src/shared/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/mod.rs')
-rw-r--r--src/shared/mod.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/shared/mod.rs b/src/shared/mod.rs
new file mode 100644
index 0000000..42a7aa4
--- /dev/null
+++ b/src/shared/mod.rs
@@ -0,0 +1,24 @@
+pub mod control_regs;
+pub mod descriptor;
+pub mod dtables;
+pub mod io;
+pub mod irq;
+pub mod msr;
+pub mod paging;
+pub mod flags;
+pub mod segmentation;
+pub mod task;
+
+#[derive(Copy, Clone, PartialEq, Eq)]
+#[repr(u8)]
+pub enum PrivilegeLevel {
+ Ring0 = 0,
+ Ring1 = 1,
+ Ring2 = 2,
+ Ring3 = 3,
+}
+
+#[inline(always)]
+pub unsafe fn halt() {
+ asm!("hlt" :::: "volatile", "intel");
+}