diff options
Diffstat (limited to 'include/arch/x86_64')
-rw-r--r-- | include/arch/x86_64/init.h | 12 | ||||
-rw-r--r-- | include/arch/x86_64/tcb.h | 10 |
2 files changed, 20 insertions, 2 deletions
diff --git a/include/arch/x86_64/init.h b/include/arch/x86_64/init.h new file mode 100644 index 0000000..d8fdf2c --- /dev/null +++ b/include/arch/x86_64/init.h @@ -0,0 +1,12 @@ +#ifndef _JOVE_x86_64_INIT_H +#define _JOVE_x86_64_INIT_H 1 + +#include <stdint.h> + +uintptr_t init_alloc_pageframe(); +void init_map_pageframe(uintptr_t pptr, uintptr_t vptr, uint8_t pflags); + +__attribute__((noreturn)) +void usermode(void *ip, void *sp); + +#endif diff --git a/include/arch/x86_64/tcb.h b/include/arch/x86_64/tcb.h index 33da4fa..ae93bdf 100644 --- a/include/arch/x86_64/tcb.h +++ b/include/arch/x86_64/tcb.h @@ -2,17 +2,23 @@ #define _JOVE_x86_64_TCB_H 1 #include <stdint.h> +#include <stddef.h> + +#define KERNEL_STACK_MINSIZE 0x1000 typedef struct jove_ThreadControlBlock { - void *stack; + size_t size; + struct jove_ThreadControlBlock *tcb_next, *sched_next; + uint8_t priority; + uintptr_t sp, ksp; void *pml4; void *mailbox; /* PML caching for faster calls?*/ - uint8_t kstack[KERNEL_STACKBYTES]; + uint8_t kstack[]; } tcb_t; #endif |