blob: 871e5c7e8b5faa3b8aaf724042ab183bfed3c722 (
plain) (
tree)
|
|
#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
|