summaryrefslogtreecommitdiff
path: root/include/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'include/kernel')
-rw-r--r--include/kernel/memory.h18
-rw-r--r--include/kernel/sched.h26
2 files changed, 44 insertions, 0 deletions
diff --git a/include/kernel/memory.h b/include/kernel/memory.h
new file mode 100644
index 0000000..7217427
--- /dev/null
+++ b/include/kernel/memory.h
@@ -0,0 +1,18 @@
+#include <stdint.h>
+
+#define PGENT 1024
+
+typedef uint32_t pte_t;
+typedef uint32_t __attribute__((aligned (4096))) ptab_t[PGENT];
+typedef uint32_t pde_t;
+typedef uint32_t __attribute__((aligned (4096))) pdir_t[PGENT];
+
+extern ptab_t ktab;
+
+void *alloc_physical_page(void);
+int free_physical_page(void*);
+void *alloc_physical_pages(unsigned int);
+
+void *map_page(void*);
+
+void paging_init(void);
diff --git a/include/kernel/sched.h b/include/kernel/sched.h
new file mode 100644
index 0000000..fa8e036
--- /dev/null
+++ b/include/kernel/sched.h
@@ -0,0 +1,26 @@
+#ifndef _SCHED_H
+#define _SCHED_H
+
+#include <stdint.h>
+
+struct task_state {
+ uint32_t ss;
+ uint32_t esp;
+ uint32_t eflags;
+ uint32_t cs;
+ uint32_t eip;
+ uint32_t eax;
+ uint32_t ecx;
+ uint32_t edx;
+ uint32_t ebx;
+ uint32_t esp_garbage;
+ uint32_t ebp;
+ uint32_t esi;
+ uint32_t edi;
+} __attribute__((packed));
+
+struct task_struct {
+ struct task_state state;
+} __attribute__((packed));
+
+#endif