summaryrefslogtreecommitdiff
path: root/src/kernel/idt.c
diff options
context:
space:
mode:
authorBenji Dial <benji6283@gmail.com>2020-09-19 14:53:29 -0400
committerBenji Dial <benji6283@gmail.com>2020-09-19 14:53:29 -0400
commitde20d7430df08731d9108acb83e1234ba7f1fe16 (patch)
tree8646f3d1bae3d30391df34766e3e58c0c2af8aab /src/kernel/idt.c
parent20853582d5385d12421433d21910e783caa00764 (diff)
downloadportland-os-de20d7430df08731d9108acb83e1234ba7f1fe16.tar.gz
file manager
Diffstat (limited to 'src/kernel/idt.c')
-rw-r--r--src/kernel/idt.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/kernel/idt.c b/src/kernel/idt.c
index 90d8dc3..1b8e548 100644
--- a/src/kernel/idt.c
+++ b/src/kernel/idt.c
@@ -8,6 +8,7 @@
#include "paging.h"
#include "pmap.h"
#include "kbd.h"
+#include "vga.h"
enum {
IDT_PRESENT = 0x80,
@@ -100,6 +101,10 @@ static uint32_t sc_enumerate_dir(uint32_t drive_number, const char *path, struct
return drives[drive_number].enumerate_dir(drives + drive_number, path, buffer, max_entries);
}
+static uint32_t sc_count_of_dir(uint32_t drive_number, const char *path) {
+ return drives[drive_number].n_dir_entries(drives + drive_number, path);
+}
+
void const *syscall_table[] = {
&sc_open_file,
&sc_close_file,
@@ -111,7 +116,11 @@ void const *syscall_table[] = {
&sc_allocate_ram,
&sc_memory_info,
&sc_wait_for_task,
- &sc_enumerate_dir
+ &sc_enumerate_dir,
+ &vga_print_at,
+ &sc_count_of_dir,
+ &vga_blank,
+ &vga_set_color
};
//these aren't really void ()'s, but gcc complains if we take an address of a void, so we give it a type