| Commit | Line | Data |
|---|---|---|
| 82a2bc67 | 1 | /* |
| 2 | ||
| 82a2bc67 | 3 | This code was written as part of the CMU Common Lisp project at |
| 4 | Carnegie Mellon University, and has been placed in the public domain. | |
| 5 | ||
| 6 | */ | |
| 7 | ||
| 62957726 | 8 | #ifndef __ARCH_H__ |
| 9 | #define __ARCH_H__ | |
| 10 | ||
| 11 | #include "os.h" | |
| 12 | #include "signal.h" | |
| 13 | ||
| cb786538 | 14 | extern char *arch_init(fpu_mode_t); |
| 15 | ||
| 9a8c1c2f | 16 | extern void arch_skip_instruction(os_context_t * scp); |
| 17 | extern boolean arch_pseudo_atomic_atomic(os_context_t * scp); | |
| 18 | extern void arch_set_pseudo_atomic_interrupted(os_context_t * scp); | |
| 0ed6918a | 19 | extern os_vm_address_t arch_get_bad_addr(HANDLER_ARGS); |
| 9a8c1c2f | 20 | extern unsigned char *arch_internal_error_arguments(os_context_t * scp); |
| 62957726 | 21 | extern unsigned long arch_install_breakpoint(void *pc); |
| 22 | extern void arch_remove_breakpoint(void *pc, unsigned long orig_inst); | |
| 23 | extern void arch_install_interrupt_handlers(void); | |
| 9a8c1c2f | 24 | extern void arch_do_displaced_inst(os_context_t * scp, unsigned long orig_inst); |
| 62957726 | 25 | extern lispobj funcall0(lispobj function); |
| 26 | extern lispobj funcall1(lispobj function, lispobj arg0); | |
| 27 | extern lispobj funcall2(lispobj function, lispobj arg0, lispobj arg1); | |
| 28 | extern lispobj funcall3(lispobj function, lispobj arg0, lispobj arg1, | |
| 29 | lispobj arg2); | |
| 30 | ||
| 441a76a6 RT |
31 | extern void arch_make_linkage_entry(long, void *, long); |
| 32 | extern long arch_linkage_entry(unsigned long); | |
| 33 | void arch_make_lazy_linkage(long linkage_entry); | |
| 34 | long arch_linkage_entry(unsigned long retaddr); | |
| 35 | ||
| 36 | ||
| c66586ed | 37 | extern void fpu_save(void *); |
| 38 | extern void fpu_restore(void *); | |
| 2daa0e7c RT |
39 | extern void sse_save(void *); |
| 40 | extern void sse_restore(void *); | |
| 441a76a6 RT |
41 | extern void save_fpu_state(void*); |
| 42 | extern void restore_fpu_state(void*); | |
| c66586ed | 43 | |
| 441a76a6 RT |
44 | #if defined(i386) || defined(__x86_64) |
| 45 | #include "x86-arch.h" | |
| 46 | #endif | |
| bf84be07 | 47 | |
| 441a76a6 RT |
48 | #if defined(DARWIN) && defined(__ppc__) |
| 49 | #include "ppc-arch.h" | |
| cb786538 | 50 | #endif |
| 51 | ||
| 441a76a6 RT |
52 | #if defined(sparc) |
| 53 | #include "sparc-arch.h" | |
| 54 | #endif | |
| 62957726 | 55 | #endif /* __ARCH_H__ */ |