| ... | @@ -1092,44 +1092,57 @@ comptime { | ... | @@ -1092,44 +1092,57 @@ comptime { |
| 1092 | } | 1092 | } |
| 1093 | | 1093 | |
| 1094 | pub usingnamespace switch (builtin.cpu.arch) { | 1094 | pub usingnamespace switch (builtin.cpu.arch) { |
| 1095 | .x86_64 => struct { | 1095 | .x86_64 => struct {}, |
| 1096 | pub const ucontext_t = extern struct { | | |
| 1097 | sc_rdi: c_long, | | |
| 1098 | sc_rsi: c_long, | | |
| 1099 | sc_rdx: c_long, | | |
| 1100 | sc_rcx: c_long, | | |
| 1101 | sc_r8: c_long, | | |
| 1102 | sc_r9: c_long, | | |
| 1103 | sc_r10: c_long, | | |
| 1104 | sc_r11: c_long, | | |
| 1105 | sc_r12: c_long, | | |
| 1106 | sc_r13: c_long, | | |
| 1107 | sc_r14: c_long, | | |
| 1108 | sc_r15: c_long, | | |
| 1109 | sc_rbp: c_long, | | |
| 1110 | sc_rbx: c_long, | | |
| 1111 | sc_rax: c_long, | | |
| 1112 | sc_gs: c_long, | | |
| 1113 | sc_fs: c_long, | | |
| 1114 | sc_es: c_long, | | |
| 1115 | sc_ds: c_long, | | |
| 1116 | sc_trapno: c_long, | | |
| 1117 | sc_err: c_long, | | |
| 1118 | sc_rip: c_long, | | |
| 1119 | sc_cs: c_long, | | |
| 1120 | sc_rflags: c_long, | | |
| 1121 | sc_rsp: c_long, | | |
| 1122 | sc_ss: c_long, | | |
| 1123 | | | |
| 1124 | sc_fpstate: *anyopaque, // struct fxsave64 * | | |
| 1125 | __sc_unused: c_int, | | |
| 1126 | sc_mask: c_int, | | |
| 1127 | sc_cookie: c_long, | | |
| 1128 | }; | | |
| 1129 | }, | | |
| 1130 | else => struct {}, | 1096 | else => struct {}, |
| 1131 | }; | 1097 | }; |
| 1132 | | 1098 | |
| | 1099 | pub const ucontext_t = switch (builtin.cpu.arch) { |
| | 1100 | .x86_64 => extern struct { |
| | 1101 | sc_rdi: c_long, |
| | 1102 | sc_rsi: c_long, |
| | 1103 | sc_rdx: c_long, |
| | 1104 | sc_rcx: c_long, |
| | 1105 | sc_r8: c_long, |
| | 1106 | sc_r9: c_long, |
| | 1107 | sc_r10: c_long, |
| | 1108 | sc_r11: c_long, |
| | 1109 | sc_r12: c_long, |
| | 1110 | sc_r13: c_long, |
| | 1111 | sc_r14: c_long, |
| | 1112 | sc_r15: c_long, |
| | 1113 | sc_rbp: c_long, |
| | 1114 | sc_rbx: c_long, |
| | 1115 | sc_rax: c_long, |
| | 1116 | sc_gs: c_long, |
| | 1117 | sc_fs: c_long, |
| | 1118 | sc_es: c_long, |
| | 1119 | sc_ds: c_long, |
| | 1120 | sc_trapno: c_long, |
| | 1121 | sc_err: c_long, |
| | 1122 | sc_rip: c_long, |
| | 1123 | sc_cs: c_long, |
| | 1124 | sc_rflags: c_long, |
| | 1125 | sc_rsp: c_long, |
| | 1126 | sc_ss: c_long, |
| | 1127 | |
| | 1128 | sc_fpstate: *anyopaque, // struct fxsave64 * |
| | 1129 | __sc_unused: c_int, |
| | 1130 | sc_mask: c_int, |
| | 1131 | sc_cookie: c_long, |
| | 1132 | }, |
| | 1133 | .aarch64 => extern struct { |
| | 1134 | __sc_unused: c_int, |
| | 1135 | sc_mask: c_int, |
| | 1136 | sc_sp: c_ulong, |
| | 1137 | sc_lr: c_ulong, |
| | 1138 | sc_elr: c_ulong, |
| | 1139 | sc_spsr: c_ulong, |
| | 1140 | sc_x: [30]c_ulong, |
| | 1141 | sc_cookie: c_long, |
| | 1142 | }, |
| | 1143 | else => @compileError("missing ucontext_t type definition"), |
| | 1144 | }; |
| | 1145 | |
| 1133 | pub const sigset_t = c_uint; | 1146 | pub const sigset_t = c_uint; |
| 1134 | pub const empty_sigset: sigset_t = 0; | 1147 | pub const empty_sigset: sigset_t = 0; |
| 1135 | | 1148 | |