summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64/HalProcessorAMD64.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel/HALKit/AMD64/HalProcessorAMD64.cc')
-rw-r--r--dev/kernel/HALKit/AMD64/HalProcessorAMD64.cc19
1 files changed, 13 insertions, 6 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalProcessorAMD64.cc b/dev/kernel/HALKit/AMD64/HalProcessorAMD64.cc
index b3cf8d09..ea129c90 100644
--- a/dev/kernel/HALKit/AMD64/HalProcessorAMD64.cc
+++ b/dev/kernel/HALKit/AMD64/HalProcessorAMD64.cc
@@ -17,7 +17,14 @@
namespace Kernel::HAL
{
- Void lrt_out8(UInt16 port, UInt8 value)
+ Void hal_set_msr(UInt32 msr, UInt32 lo, UInt32 hi) noexcept
+ {
+ asm volatile("wrmsr"
+ :
+ : "a"(lo), "d"(hi), "c"(msr));
+ }
+
+ Void lrt_hal_out8(UInt16 port, UInt8 value)
{
asm volatile("outb %%al, %1"
:
@@ -25,7 +32,7 @@ namespace Kernel::HAL
: "memory");
}
- Void lrt_out16(UInt16 port, UInt16 value)
+ Void lrt_hal_out16(UInt16 port, UInt16 value)
{
asm volatile("outw %%ax, %1"
:
@@ -33,7 +40,7 @@ namespace Kernel::HAL
: "memory");
}
- Void lrt_out32(UInt16 port, UInt32 value)
+ Void lrt_hal_out32(UInt16 port, UInt32 value)
{
asm volatile("outl %%eax, %1"
:
@@ -41,7 +48,7 @@ namespace Kernel::HAL
: "memory");
}
- UInt8 lrt_in8(UInt16 port)
+ UInt8 lrt_hal_in8(UInt16 port)
{
UInt8 value = 0UL;
asm volatile("inb %1, %%al"
@@ -52,7 +59,7 @@ namespace Kernel::HAL
return value;
}
- UInt16 lrt_in16(UInt16 port)
+ UInt16 lrt_hal_in16(UInt16 port)
{
UInt16 value = 0UL;
asm volatile("inw %1, %%ax"
@@ -63,7 +70,7 @@ namespace Kernel::HAL
return value;
}
- UInt32 lrt_in32(UInt16 port)
+ UInt32 lrt_hal_in32(UInt16 port)
{
UInt32 value = 0UL;
asm volatile("inl %1, %%eax"