zig/lib/std / c/darwin/x86_64.zig

const c = @import("../darwin.zig");

mcontext_t

pub const mcontext_t = extern struct {
    es: exception_state,
    ss: thread_state,
    fs: float_state,
};

exception_state

pub const exception_state = extern struct {
    trapno: u16,
    cpu: u16,
    err: u32,
    faultvaddr: u64,
};

thread_state

pub const thread_state = extern struct {
    rax: u64,
    rbx: u64,
    rcx: u64,
    rdx: u64,
    rdi: u64,
    rsi: u64,
    rbp: u64,
    rsp: u64,
    r8: u64,
    r9: u64,
    r10: u64,
    r11: u64,
    r12: u64,
    r13: u64,
    r14: u64,
    r15: u64,
    rip: u64,
    rflags: u64,
    cs: u64,
    fs: u64,
    gs: u64,
};

const stmm_reg = [16]u8;
const xmm_reg = [16]u8;

float_state

pub const float_state = extern struct {
    reserved: [2]c_int,
    fcw: u16,
    fsw: u16,
    ftw: u8,
    rsrv1: u8,
    fop: u16,
    ip: u32,
    cs: u16,
    rsrv2: u16,
    dp: u32,
    ds: u16,
    rsrv3: u16,
    mxcsr: u32,
    mxcsrmask: u32,
    stmm: [8]stmm_reg,
    xmm: [16]xmm_reg,
    rsrv4: [96]u8,
    reserved1: c_int,
};

THREAD_STATE

pub const THREAD_STATE = 4;

THREAD_STATE_COUNT

pub const THREAD_STATE_COUNT: c.mach_msg_type_number_t = @sizeOf(thread_state) / @sizeOf(c_int);

EXC_TYPES_COUNT

pub const EXC_TYPES_COUNT = 14;

EXC_MASK_MACHINE

pub const EXC_MASK_MACHINE = 0;

x86_THREAD_STATE32

pub const x86_THREAD_STATE32 = 1;

x86_FLOAT_STATE32

pub const x86_FLOAT_STATE32 = 2;

x86_EXCEPTION_STATE32

pub const x86_EXCEPTION_STATE32 = 3;

x86_THREAD_STATE64

pub const x86_THREAD_STATE64 = 4;

x86_FLOAT_STATE64

pub const x86_FLOAT_STATE64 = 5;

x86_EXCEPTION_STATE64

pub const x86_EXCEPTION_STATE64 = 6;

x86_THREAD_STATE

pub const x86_THREAD_STATE = 7;

x86_FLOAT_STATE

pub const x86_FLOAT_STATE = 8;

x86_EXCEPTION_STATE

pub const x86_EXCEPTION_STATE = 9;

x86_DEBUG_STATE32

pub const x86_DEBUG_STATE32 = 10;

x86_DEBUG_STATE64

pub const x86_DEBUG_STATE64 = 11;

x86_DEBUG_STATE

pub const x86_DEBUG_STATE = 12;

THREAD_STATE_NONE

pub const THREAD_STATE_NONE = 13;

x86_AVX_STATE32

pub const x86_AVX_STATE32 = 16;

x86_AVX_STATE64

pub const x86_AVX_STATE64 = (x86_AVX_STATE32 + 1);

x86_AVX_STATE

pub const x86_AVX_STATE = (x86_AVX_STATE32 + 2);

x86_AVX512_STATE32

pub const x86_AVX512_STATE32 = 19;

x86_AVX512_STATE64

pub const x86_AVX512_STATE64 = (x86_AVX512_STATE32 + 1);

x86_AVX512_STATE

pub const x86_AVX512_STATE = (x86_AVX512_STATE32 + 2);

x86_PAGEIN_STATE

pub const x86_PAGEIN_STATE = 22;

x86_THREAD_FULL_STATE64

pub const x86_THREAD_FULL_STATE64 = 23;

x86_INSTRUCTION_STATE

pub const x86_INSTRUCTION_STATE = 24;

x86_LAST_BRANCH_STATE

pub const x86_LAST_BRANCH_STATE = 25;