diff options
author | Kenji Aoyama <aoyama@cvs.openbsd.org> | 2004-04-21 15:24:16 +0000 |
---|---|---|
committer | Kenji Aoyama <aoyama@cvs.openbsd.org> | 2004-04-21 15:24:16 +0000 |
commit | fa26623fb9b8bea0664d8b457f0cb9117f8b650b (patch) | |
tree | 3abec74dfa27f8152e5f2d45ed4e404eac62be3c /sys/arch/luna88k/include/locore.h | |
parent | ea460b0cb47a034a8e87cb24dd8a38b9f83756e6 (diff) |
Initial commit for OpenBSD/luna88k, based on OpenBSD/mvme88k, NetBSD/luna68k and CMU Mach.
Diffstat (limited to 'sys/arch/luna88k/include/locore.h')
-rw-r--r-- | sys/arch/luna88k/include/locore.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/sys/arch/luna88k/include/locore.h b/sys/arch/luna88k/include/locore.h new file mode 100644 index 00000000000..ab5b2368a77 --- /dev/null +++ b/sys/arch/luna88k/include/locore.h @@ -0,0 +1,84 @@ +/* $OpenBSD: locore.h,v 1.1 2004/04/21 15:23:57 aoyama Exp $ */ + +#ifndef _MACHINE_LOCORE_H_ +#define _MACHINE_LOCORE_H_ + +#include <uvm/uvm_param.h> + +/* + * C prototypes for various routines defined in locore_* and friends + */ + +/* locore_asm_routines.S */ + +unsigned int do_load_word(vaddr_t address, + boolean_t supervisor_mode); +unsigned int do_load_half(vaddr_t address, + boolean_t supervisor_mode); +unsigned int do_load_byte(vaddr_t address, + boolean_t supervisor_mode); + +void do_store_word(vaddr_t address, unsigned int data, + boolean_t supervisor_mode); +void do_store_half(vaddr_t address, unsigned int data, + boolean_t supervisor_mode); +void do_store_byte(vaddr_t address, unsigned int data, + boolean_t supervisor_mode); + +unsigned do_xmem_word(vaddr_t address, unsigned int data, + boolean_t supervisor_mode); +unsigned do_xmem_byte(vaddr_t address, unsigned int data, + boolean_t supervisor_mode); + +unsigned read_processor_identification_register(void); +int badaddr(vaddr_t addr, int size); +#define badwordaddr(x) badaddr(x, 4) +void set_cpu_number(unsigned number); +void doboot(void); + +int guarded_access(unsigned char *volatile address, + unsigned len, u_char *vec); + +/* locore_c_routines.c */ + +void dae_print(unsigned *eframe); +void data_access_emulation(unsigned *eframe); + +unsigned getipl(void); + +/* machdep.c */ + +void _doboot(void); +vaddr_t get_slave_stack(void); +void slave_pre_main(void); +int slave_main(void); +int intr_findvec(int start, int end); +void bugsyscall(void); +void myetheraddr(u_char *cp); +void dosoftint(void); +void MY_info(struct trapframe *f, caddr_t p, int flags, char *s); +void MY_info_done(struct trapframe *f, int flags); +void luna88k_bootstrap(void); +void luna88k_ext_int(u_int v, struct trapframe *eframe); +unsigned int safe_level(unsigned mask, unsigned curlevel); + +/* eh.S */ + +struct proc; +void proc_do_uret(struct proc *); +void sigsys(void); +void sigtrap(void); +void stepbpt(void); +void userbpt(void); +void syscall_handler(void); +void m88110_sigsys(void); +void m88110_sigtrap(void); +void m88110_stepbpt(void); +void m88110_userbpt(void); +void m88110_syscall_handler(void); + +/* process.S */ +void savectx(struct pcb *); +void switch_exit(struct proc *); + +#endif /* _MACHINE_LOCORE_H_ */ |