mirror of
https://review.haiku-os.org/haiku
synced 2025-02-06 05:50:48 +01:00
This also implements the fault handler correctly now, and cleans up the exception handling. Seems a lot more stable now, no unexpected panics or faults happening anymore.
62 lines
1.0 KiB
C
62 lines
1.0 KiB
C
/*
|
|
** Copyright 2003-2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
|
** Distributed under the terms of the Haiku License.
|
|
*/
|
|
#ifndef _KERNEL_ARCH_ARM_CPU_H
|
|
#define _KERNEL_ARCH_ARM_CPU_H
|
|
|
|
#ifndef _ASSEMBLER
|
|
|
|
#include <arch/arm/arch_thread_types.h>
|
|
#include <kernel.h>
|
|
|
|
/* raw exception frames */
|
|
struct iframe {
|
|
uint32 spsr;
|
|
uint32 r0;
|
|
uint32 r1;
|
|
uint32 r2;
|
|
uint32 r3;
|
|
uint32 r4;
|
|
uint32 r5;
|
|
uint32 r6;
|
|
uint32 r7;
|
|
uint32 r8;
|
|
uint32 r9;
|
|
uint32 r10;
|
|
uint32 r11;
|
|
uint32 r12;
|
|
uint32 usr_sp;
|
|
uint32 usr_lr;
|
|
uint32 svc_sp;
|
|
uint32 svc_lr;
|
|
uint32 pc;
|
|
} _PACKED;
|
|
|
|
typedef struct arch_cpu_info {
|
|
} arch_cpu_info;
|
|
|
|
extern int arch_cpu_type;
|
|
extern int arch_fpu_type;
|
|
extern int arch_mmu_type;
|
|
extern int arch_platform;
|
|
extern int arch_machine;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
extern addr_t arm_get_far(void);
|
|
extern int32 arm_get_fsr(void);
|
|
|
|
extern int mmu_read_c1(void);
|
|
extern int mmu_write_c1(int val);
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
#endif // !_ASSEMBLER
|
|
|
|
#endif /* _KERNEL_ARCH_ARM_CPU_H */
|