From 9365fa785cef6fffeac5552b74d2d451d36e3a3f Mon Sep 17 00:00:00 2001 From: Mathieu Serandour Date: Sun, 5 Dec 2021 11:30:24 +0100 Subject: [PATCH] register header --- kernel/registers.h | 15 +++++++++++++++ kernel/regs.h | 9 --------- kernel/regs.s | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) delete mode 100644 kernel/regs.h diff --git a/kernel/registers.h b/kernel/registers.h index a72b73c..082dde6 100644 --- a/kernel/registers.h +++ b/kernel/registers.h @@ -10,6 +10,12 @@ u16 _es(void); u16 _fs(void); u16 _gs(void); +uint64_t get_rflags(void); +uint64_t get_cr0(void); +uint64_t _cr2(void); +uint64_t _cr3(void); +uint64_t get_cr4(void); + u16 set_cs(void); u16 set_ds(void); @@ -18,4 +24,13 @@ u16 set_es(void); u16 set_fs(void); u16 set_gs(void); +void set_rflags(void); +void set_cr0(void); +void set_cr4(void); + + +uint64_t read_msr(uint32_t addr); +uint64_t write_msr(uint32_t addr, uint64_t value); + + #endif// REGISTERS_H \ No newline at end of file diff --git a/kernel/regs.h b/kernel/regs.h deleted file mode 100644 index 9848ae3..0000000 --- a/kernel/regs.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once -#include - -uint64_t _ds(void); -uint64_t _ss(void); -uint64_t _cs(void); -uint64_t _es(void); -uint64_t _fs(void); -uint64_t _gs(void); diff --git a/kernel/regs.s b/kernel/regs.s index 4b33f90..efef2c2 100644 --- a/kernel/regs.s +++ b/kernel/regs.s @@ -136,7 +136,7 @@ read_msr: ret -; read_msr(uint32_t addr, uint64_t value) +; write_msr(uint32_t addr, uint64_t value) write_msr: push rbp mov rbp, rsp