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