cpu.h revision 133084
1/* $NetBSD: cpu.h,v 1.2 2001/02/23 21:23:52 reinoud Exp $ */
2/* $FreeBSD: head/sys/arm/include/cpu.h 133084 2004-08-03 18:44:27Z mux $ */
3
4#ifndef MACHINE_CPU_H
5#define MACHINE_CPU_H
6
7#include <machine/armreg.h>
8
9void    cpu_halt(void);
10void    swi_vm(void *);
11
12static __inline uint64_t
13get_cyclecount(void)
14{
15	return (0);
16}
17
18#define CPU_CONSDEV 1
19#define CPU_ADJKERNTZ           2       /* int: timezone offset (seconds) */
20#define CPU_DISRTCSET           3       /* int: disable resettodr() call */
21#define CPU_BOOTINFO            4       /* struct: bootinfo */
22#define CPU_WALLCLOCK           5       /* int: indicates wall CMOS clock */
23#define CPU_MAXID               6       /* number of valid machdep ids */
24
25
26#define CLKF_USERMODE(frame)    ((frame->if_spsr & PSR_MODE) == PSR_USR32_MODE)
27
28#define TRAPF_USERMODE(frame)	((frame->tf_spsr & PSR_MODE) == PSR_USR32_MODE)
29#define CLKF_PC(frame)          (frame->if_pc)
30
31#define TRAPF_PC(tfp)		((tfp)->tf_pc)
32
33#define cpu_getstack(td)        ((td)->td_frame->tf_usr_sp)
34#define cpu_setstack(td, sp)    ((td)->td_frame->tf_usr_sp = (sp))
35#define cpu_spinwait()		/* nothing */
36
37#define ARM_NVEC		8
38#define ARM_VEC_ALL		0xffffffff
39
40extern vm_offset_t vector_page;
41
42void fork_trampoline(void);
43void *initarm(void *, void *);
44void arm_vector_init(vm_offset_t, int);
45void identify_arm_cpu(void);
46
47extern char btext[];
48extern char etext[];
49int badaddr_read (void *, size_t, void *);
50#endif /* !MACHINE_CPU_H */
51