aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/io/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/io/io.c')
-rw-r--r--src/kernel/io/io.c128
1 files changed, 0 insertions, 128 deletions
diff --git a/src/kernel/io/io.c b/src/kernel/io/io.c
deleted file mode 100644
index 1ef82b6..0000000
--- a/src/kernel/io/io.c
+++ /dev/null
@@ -1,128 +0,0 @@
-#include <stdint.h>
-#include <system.h>
-
-u8 inb(u16 port)
-{
- u8 value;
- asm volatile("inb %1, %0" : "=a"(value) : "Nd"(port));
- return value;
-}
-
-u16 inw(u16 port)
-{
- u16 value;
- asm volatile("inw %1, %0" : "=a"(value) : "Nd"(port));
- return value;
-}
-
-u32 inl(u16 port)
-{
- u32 value;
- asm volatile("inl %1, %0" : "=a"(value) : "Nd"(port));
- return value;
-}
-
-u32 cpu_flags()
-{
- u32 flags;
- asm volatile("pushf\n"
- "pop %0\n"
- : "=rm"(flags)::"memory");
- return flags;
-}
-
-int interrupts_enabled()
-{
- return (cpu_flags() & 0x200) == 0x200;
-}
-
-void interrupts_print()
-{
- if (interrupts_enabled())
- log(GRN "Interrupts are enabled!" RES);
- else
- log(RED "Interrupts are disabled!" RES);
-}
-
-void cli()
-{
- asm volatile("cli");
-}
-
-void sti()
-{
- asm volatile("sti");
-}
-
-void hlt()
-{
- asm volatile("hlt");
-}
-
-void outb(u16 port, u8 data)
-{
- asm volatile("outb %0, %1" ::"a"(data), "Nd"(port));
-}
-
-void outw(u16 port, u16 data)
-{
- asm volatile("outw %0, %1" ::"a"(data), "Nd"(port));
-}
-
-void outl(u16 port, u32 data)
-{
- asm volatile("outl %0, %1" ::"a"(data), "Nd"(port));
-}
-
-u32 cr3_get()
-{
- u32 cr3;
- asm volatile("movl %%cr3, %%eax" : "=a"(cr3));
- return cr3;
-}
-
-void cr3_set(u32 cr3)
-{
- asm volatile("movl %%eax, %%cr3" ::"a"(cr3));
-}
-
-u32 cr0_get()
-{
- u32 cr0;
- asm volatile("movl %%cr0, %%eax" : "=a"(cr0));
- return cr0;
-}
-
-void cr0_set(u32 cr0)
-{
- asm volatile("movl %%eax, %%cr0" ::"a"(cr0));
-}
-
-void invlpg(u32 addr)
-{
- asm volatile("invlpg (%0)" ::"r"(addr) : "memory");
-}
-
-void serial_install()
-{
- outb(0x3f8 + 1, 0x00);
- outb(0x3f8 + 3, 0x80);
- outb(0x3f8 + 0, 0x03);
- outb(0x3f8 + 1, 0x00);
- outb(0x3f8 + 3, 0x03);
- outb(0x3f8 + 2, 0xC7);
- outb(0x3f8 + 4, 0x0B);
- info("Installed serial connection");
-}
-
-int is_transmit_empty()
-{
- return inb(0x3f8 + 5) & 0x20;
-}
-
-void serial_put(char ch)
-{
- while (is_transmit_empty() == 0)
- ;
- outb(0x3f8, (u8)ch);
-} \ No newline at end of file