1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:17:44 +00:00

Import the "gerbert" kernel I worked on earlier this year.

It's a lot crappier than I remembered it. It's gonna need a lot of work.
This commit is contained in:
Andreas Kling 2018-10-16 11:01:38 +02:00
parent f608629704
commit 9396108034
55 changed files with 4600 additions and 0 deletions

41
Kernel/IO.cpp Normal file
View file

@ -0,0 +1,41 @@
#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));
}
}