53,6 → 53,7 |
// // uintptr_t supervisor_sp /*__attribute__ ((section (".text")))*/; |
extern uintptr_t supervisor_sp; |
|
|
void arch_pre_main(void) |
{ |
int i; |
66,6 → 67,7 |
|
} |
|
|
void arch_pre_mm_init(void) |
{ |
/* It is not assumed by default */ |
72,10 → 74,8 |
interrupts_disable(); |
|
setup_exception_stacks(); |
|
} |
|
void prefetch_exception_generator(void); |
|
void arch_post_mm_init(void) |
{ |
88,34 → 88,34 |
|
console_init(device_assign_devno()); |
|
//fb_init(0x12000000, 640, 480, 1920, VISUAL_RGB_8_8_8); |
|
interrupts_enable(); |
|
} |
|
|
void arch_post_cpu_init(void) |
{ |
/* TODO */ |
} |
|
|
void arch_pre_smp_init(void) |
{ |
/* TODO */ |
} |
|
|
void arch_post_smp_init(void) |
{ |
/* TODO */ |
} |
|
|
/** Perform arm32 specific tasks needed before the new task is run. */ |
void before_task_runs_arch(void) |
{ |
tlb_invalidate_all(); |
/* TODO */ |
tlb_invalidate_all(); |
} |
|
|
/** Perform arm32 specific tasks needed before the new thread is scheduled. */ |
void before_thread_runs_arch(void) |
{ |
122,11 → 122,12 |
supervisor_sp = (uintptr_t) &THREAD->kstack[THREAD_STACK_SIZE-SP_DELTA]; |
} |
|
|
void after_thread_ran_arch(void) |
{ |
/* TODO */ |
} |
|
|
/** Struct to hold general purpose register values */ |
typedef struct { |
uint32_t r0; |
150,7 → 151,7 |
|
/** Changes processor mode and jumps to the address specified in the first parameter. |
* |
* \param kernel_uarg userspace settings (entry point, stack, ...) |
* @param kernel_uarg Userspace settings (entry point, stack, ...). |
*/ |
void userspace(uspace_arg_t *kernel_uarg) |
{ |