mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 23:50:19 +00:00
9396108034
It's a lot crappier than I remembered it. It's gonna need a lot of work.
41 lines
635 B
C++
41 lines
635 B
C++
#include "IO.h"
|
|
|
|
namespace IO {
|
|
|
|
BYTE in8(WORD port)
|
|
{
|
|
BYTE value;
|
|
asm("inb %%dx, %%al":"=a"(value):"d"(port));
|
|
return value;
|
|
}
|
|
|
|
WORD in16(WORD port)
|
|
{
|
|
WORD value;
|
|
asm("inw %%dx, %%ax":"=a"(value):"d"(port));
|
|
return value;
|
|
}
|
|
|
|
DWORD in32(DWORD port)
|
|
{
|
|
DWORD value;
|
|
asm("inl %%dx, %%eax":"=a"(value):"d"(port));
|
|
return value;
|
|
}
|
|
|
|
void out8(WORD port, BYTE value)
|
|
{
|
|
asm("outb %%al, %%dx"::"d"(port), "a"(value));
|
|
}
|
|
|
|
void out16(WORD port, WORD value)
|
|
{
|
|
asm("outw %%ax, %%dx"::"d"(port), "a"(value));
|
|
}
|
|
|
|
void out32(WORD port, WORD value)
|
|
{
|
|
asm("outl %%eax, %%dx"::"d"(port), "a"(value));
|
|
}
|
|
|
|
}
|