mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 00:14:32 -08:00
- Moved MSR code to separate files with an enum class - Implemented syscall_enable in C++ using new MSR calls
23 lines
337 B
C++
23 lines
337 B
C++
#include "io.h"
|
|
|
|
uint8_t
|
|
inb(uint16_t port)
|
|
{
|
|
uint8_t val;
|
|
__asm__ __volatile__ ( "inb %1, %0" : "=a"(val) : "Nd"(port) );
|
|
return val;
|
|
}
|
|
|
|
void
|
|
outb(uint16_t port, uint8_t val)
|
|
{
|
|
__asm__ __volatile__ ( "outb %0, %1" :: "a"(val), "Nd"(port) );
|
|
}
|
|
|
|
void
|
|
io_wait(unsigned times)
|
|
{
|
|
for (unsigned i = 0; i < times; ++i)
|
|
outb(0x80, 0);
|
|
}
|