From 9691cded95afa53f17bfc50edc371d4fe673b56a Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 15 Apr 2023 06:36:28 +0100 Subject: [PATCH] std: mcontext layout for x86 and fixing few x86_64 fields types for FreeBSD --- lib/std/c/freebsd.zig | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index 16653ae47b..037ba989ca 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -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 {