std: mcontext layout for x86 and fixing few x86_64 fields types for

FreeBSD
This commit is contained in:
David Carlier 2023-04-15 06:36:28 +01:00 committed by Veikka Tuominen
parent 1d322fe510
commit 9691cded95

View File

@ -1391,15 +1391,47 @@ pub const mcontext_t = switch (builtin.cpu.arch) {
rflags: u64,
rsp: u64,
ss: u64,
len: u64,
fpformat: u64,
ownedfp: u64,
fpstate: [64]u64 align(16),
len: c_long,
fpformat: c_long,
ownedfp: c_long,
fpstate: [64]c_long align(16),
fsbase: u64,
gsbase: u64,
xfpustate: u64,
xfpustate_len: u64,
spare: [4]u64,
spare: [4]c_long,
},
.x86 => extern struct {
onstack: u32,
gs: u32,
fs: u32,
es: u32,
ds: u32,
edi: u32,
esi: u32,
ebp: u32,
isp: u32,
ebx: u32,
edx: u32,
ecx: u32,
eax: u32,
trapno: u32,
err: u32,
eip: u32,
cs: u32,
eflags: u32,
esp: u32,
ss: u32,
len: c_int,
fpformat: c_int,
ownedfp: c_int,
flags: u32,
fpstate: [128]c_int align(16),
fsbase: u32,
gsbase: u32,
xpustate: u32,
xpustate_len: u32,
spare2: [4]c_int,
},
.aarch64 => extern struct {
gpregs: extern struct {