summaryrefslogtreecommitdiff
path: root/sys/arch/luna88k/include/locore.h
diff options
context:
space:
mode:
authorKenji Aoyama <aoyama@cvs.openbsd.org>2004-04-21 15:24:16 +0000
committerKenji Aoyama <aoyama@cvs.openbsd.org>2004-04-21 15:24:16 +0000
commitfa26623fb9b8bea0664d8b457f0cb9117f8b650b (patch)
tree3abec74dfa27f8152e5f2d45ed4e404eac62be3c /sys/arch/luna88k/include/locore.h
parentea460b0cb47a034a8e87cb24dd8a38b9f83756e6 (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.h84
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_ */