blob: 871e5c7e8b5faa3b8aaf724042ab183bfed3c722 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
|