/* * Copyright 2009 Haiku Inc. * All rights reserved. Distributed under the terms of the MIT License. */ #ifndef _KERNEL_ARCH_MIPSEL_CPU_H #define _KERNEL_ARCH_MIPSEL_CPU_H #warning IMPLEMENT arch_cpu.h #include #include struct iframe { #warning struct iframe uint32 r31; uint32 r30; uint32 r29; uint32 r28; uint32 r27; uint32 r26; uint32 r25; uint32 r24; uint32 r23; uint32 r22; uint32 r21; uint32 r20; uint32 r19; uint32 r18; uint32 r17; uint32 r16; uint32 r15; uint32 r14; uint32 r13; uint32 r12; uint32 r11; uint32 r10; uint32 r9; uint32 r8; uint32 r7; uint32 r6; uint32 r5; uint32 r4; uint32 r3; uint32 r2; uint32 r1; uint32 r0; }; typedef struct arch_cpu_info { int null; } arch_cpu_info; #ifdef __cplusplus extern "C" { #endif extern long long get_time_base(void); void __mipsel_setup_system_time(vint32 *cvFactor); // defined in libroot: os/arch/system_time.c int64 __mipsel_get_time_base(void); // defined in libroot: os/arch/system_time_asm.S extern void mipsel_context_switch(void **_oldStackPointer, void *newStackPointer); extern bool mipsel_set_fault_handler(addr_t *handlerLocation, addr_t handler) __attribute__((noinline)); #ifdef __cplusplus } #endif /* TODO */ enum mipsel_processor_version { FAKE1 = 0x0001, FAKE2 = 0x0002, FAKE3 = 0x0003, }; #endif /* _KERNEL_ARCH_MIPSEL_CPU_H */