Rev 1820 | Rev 1881 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1820 | Rev 1839 | ||
|---|---|---|---|
| Line 41... | Line 41... | ||
| 41 | 41 | ||
| 42 | #include <cpu.h> |
42 | #include <cpu.h> |
| 43 | #include <arch/cpu.h> |
43 | #include <arch/cpu.h> |
| 44 | #include <arch/asm.h> |
44 | #include <arch/asm.h> |
| 45 | 45 | ||
| - | 46 | #define DEFAULT_CONTEXT 0 |
|
| - | 47 | ||
| 46 | #define CPU THE->cpu |
48 | #define CPU THE->cpu |
| 47 | #define THREAD THE->thread |
49 | #define THREAD THE->thread |
| 48 | #define TASK THE->task |
50 | #define TASK THE->task |
| 49 | #define AS THE->as |
51 | #define AS THE->as |
| - | 52 | #define CONTEXT (THE->task ? THE->task->context : DEFAULT_CONTEXT) |
|
| 50 | #define PREEMPTION_DISABLED THE->preemption_disabled |
53 | #define PREEMPTION_DISABLED THE->preemption_disabled |
| 51 | 54 | ||
| - | 55 | #define context_check(ctx1, ctx2) ((ctx1) == (ctx2)) |
|
| - | 56 | ||
| 52 | /** |
57 | /** |
| 53 | * For each possible kernel stack, structure |
58 | * For each possible kernel stack, structure |
| 54 | * of the following type will be placed at |
59 | * of the following type will be placed at |
| 55 | * the base address of the stack. |
60 | * the base address of the stack. |
| 56 | */ |
61 | */ |
| Line 58... | Line 63... | ||
| 58 | count_t preemption_disabled; /**< Preemption disabled counter. */ |
63 | count_t preemption_disabled; /**< Preemption disabled counter. */ |
| 59 | thread_t *thread; /**< Current thread. */ |
64 | thread_t *thread; /**< Current thread. */ |
| 60 | task_t *task; /**< Current task. */ |
65 | task_t *task; /**< Current task. */ |
| 61 | cpu_t *cpu; /**< Executing cpu. */ |
66 | cpu_t *cpu; /**< Executing cpu. */ |
| 62 | as_t *as; /**< Current address space. */ |
67 | as_t *as; /**< Current address space. */ |
| 63 | context_id_t context; /**< Current security context. */ |
- | |
| 64 | }; |
68 | }; |
| 65 | 69 | ||
| 66 | #define THE ((the_t *)(get_stack_base())) |
70 | #define THE ((the_t *)(get_stack_base())) |
| 67 | 71 | ||
| 68 | extern void the_initialize(the_t *the); |
72 | extern void the_initialize(the_t *the); |
| 69 | extern void the_copy(the_t *src, the_t *dst); |
73 | extern void the_copy(the_t *src, the_t *dst); |
| 70 | 74 | ||
| 71 | extern void arch_pre_main(void); |
75 | extern void arch_pre_main(void); |