12 #include <sys/socket.h>
13 #include <sys/utsname.h>
15 #include <sys/types.h>
21 #ifdef LISP_FEATURE_SB_THREAD
22 #error "Threading is not supported for Solaris running on x86-64."
28 int arch_os_thread_init(struct thread *thread) {
33 int arch_os_thread_cleanup(struct thread *thread) {
38 os_context_register_t *
39 os_context_register_addr(os_context_t *context, int offset)
41 #define RCASE(name) case reg_ ## name: return &context->uc_mcontext.gregs[REG_ ## name];
61 return &context->uc_mcontext.gregs[offset/2+4];
64 return &context->uc_mcontext.gregs[offset];
67 os_context_register_t *
68 os_context_pc_addr(os_context_t *context)
70 return &context->uc_mcontext.gregs[REG_RIP];
73 os_context_register_t *
74 os_context_sp_addr(os_context_t *context)
76 return &context->uc_mcontext.gregs[REG_RSP];
80 os_context_sigmask_addr(os_context_t *context)
82 return &(context->uc_sigmask);
85 void os_flush_icache(os_vm_address_t address, os_vm_size_t length)
90 os_context_fp_control(os_context_t *context)
92 return context->uc_mcontext.fpregs.fp_reg_set.fpchip_state.cw;