#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