From ace65b453151845bc361f21f3e5b651c35f9f126 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Wed, 22 May 2024 13:00:41 -0400 Subject: massive refactor for mp and organization --- include/arch/processor.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 include/arch/processor.h (limited to 'include/arch/processor.h') diff --git a/include/arch/processor.h b/include/arch/processor.h new file mode 100644 index 0000000..871e5c7 --- /dev/null +++ b/include/arch/processor.h @@ -0,0 +1,39 @@ +#ifndef _JOVE_ARCH_PROCESSOR_H +#define _JOVE_ARCH_PROCESSOR_H 1 + +#ifdef __x86_64__ +#include "x86_64/processor.h" +#endif + +#include "memory.h" +#include "tasking.h" +#include "klib/spinlock.h" + +#define _EXRTAB_C (PAGE_SIZE / sizeof(uintptr_t)) + +typedef struct processor +{ + ARCH_SPECIFIC_PROCESSOR_MEMBERS; + unsigned int id; + unsigned int isr_depth; + page_directory_t *pd; + tcb_t *tcb; + + uintptr_t exrtab[_EXRTAB_C]; + size_t ert_i; +} processor_t; + +extern processor_t *proc_bsp; + +void processor_setup(processor_t *proc); + +processor_t *processor_list(void); + +processor_t *processor_current(void); +page_directory_t *pd_current(void); +tcb_t *tcb_current(void); + +void _exrtab_push(void *v); +void *_exrtab_pop(void); + +#endif -- cgit v1.2.1