| ... | ... | @@ -1092,44 +1092,57 @@ comptime { |
| 1092 | 1092 | } |
| 1093 | 1093 | |
| 1094 | 1094 | pub usingnamespace switch (builtin.cpu.arch) { |
| 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 | | }, |
| 1095 | .x86_64 => struct {}, |
| 1130 | 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 | 1146 | pub const sigset_t = c_uint; |
| 1134 | 1147 | pub const empty_sigset: sigset_t = 0; |
| 1135 | 1148 | |