89 |
|
#define SIGSEGV_FAULT_INSTRUCTION SIP->thr_state.MACH_FIELD_NAME(eip) |
90 |
|
#define SIGSEGV_SKIP_INSTRUCTION ix86_skip_instruction |
91 |
|
#define SIGSEGV_REGISTER_FILE ((SIGSEGV_REGISTER_TYPE *)&SIP->thr_state.MACH_FIELD_NAME(eax)) /* EAX is the first GPR we consider */ |
92 |
+ |
#define SIGSEGV_FAULT_ADDRESS_FAST code[1] |
93 |
|
#endif |
94 |
|
#ifdef __x86_64__ |
95 |
|
#if __DARWIN_UNIX03 && defined _STRUCT_X86_THREAD_STATE64 |
105 |
|
#define SIGSEGV_FAULT_INSTRUCTION SIP->thr_state.MACH_FIELD_NAME(rip) |
106 |
|
#define SIGSEGV_SKIP_INSTRUCTION ix86_skip_instruction |
107 |
|
#define SIGSEGV_REGISTER_FILE ((SIGSEGV_REGISTER_TYPE *)&SIP->thr_state.MACH_FIELD_NAME(rax)) /* RAX is the first GPR we consider */ |
108 |
+ |
#define SIGSEGV_FAULT_ADDRESS_FAST (((uint64_t)code[1])|0x100000000) |
109 |
|
#endif |
108 |
– |
#define SIGSEGV_FAULT_ADDRESS_FAST code[1] |
110 |
|
#define SIGSEGV_FAULT_INSTRUCTION_FAST SIGSEGV_INVALID_ADDRESS |
111 |
|
#define SIGSEGV_FAULT_HANDLER_ARGLIST mach_port_t thread, mach_exception_data_t code |
112 |
|
#define SIGSEGV_FAULT_HANDLER_ARGS thread, code |