haiku/headers/private/kernel/arch/mipsel/arch_cpu.h

91 lines
1.4 KiB
C
Raw Normal View History

/*
* 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 <arch/mipsel/arch_thread_types.h>
#include <kernel.h>
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 */