diff options
Diffstat (limited to 'include/kernel')
| -rw-r--r-- | include/kernel/memory.h | 18 | ||||
| -rw-r--r-- | include/kernel/sched.h | 26 |
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 |
