// automatically generated with:
// bindgen  /usr/local/include/libunwind-ptrace.h --allowlist-type unw_.*

#![allow(dead_code)]
#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(improper_ctypes)]
#![allow(clippy::useless_transmute)]
#![allow(clippy::default_trait_access)]
#![allow(clippy::cast_lossless)]
#![allow(clippy::trivially_copy_pass_by_ref)]

/* automatically generated by rust-bindgen 0.72.0 */

pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __uint64_t = ::std::os::raw::c_ulong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sigset_t {
    pub __val: [::std::os::raw::c_ulong; 16usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of __sigset_t"][::std::mem::size_of::<__sigset_t>() - 128usize];
    ["Alignment of __sigset_t"][::std::mem::align_of::<__sigset_t>() - 8usize];
    ["Offset of field: __sigset_t::__val"][::std::mem::offset_of!(__sigset_t, __val) - 0usize];
};
pub type sigset_t = __sigset_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct stack_t {
    pub ss_sp: *mut ::std::os::raw::c_void,
    pub ss_flags: ::std::os::raw::c_int,
    pub ss_size: usize,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of stack_t"][::std::mem::size_of::<stack_t>() - 24usize];
    ["Alignment of stack_t"][::std::mem::align_of::<stack_t>() - 8usize];
    ["Offset of field: stack_t::ss_sp"][::std::mem::offset_of!(stack_t, ss_sp) - 0usize];
    ["Offset of field: stack_t::ss_flags"][::std::mem::offset_of!(stack_t, ss_flags) - 8usize];
    ["Offset of field: stack_t::ss_size"][::std::mem::offset_of!(stack_t, ss_size) - 16usize];
};
pub type greg_t = ::std::os::raw::c_longlong;
pub type gregset_t = [greg_t; 23usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _libc_fpxreg {
    pub significand: [::std::os::raw::c_ushort; 4usize],
    pub exponent: ::std::os::raw::c_ushort,
    pub __glibc_reserved1: [::std::os::raw::c_ushort; 3usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _libc_fpxreg"][::std::mem::size_of::<_libc_fpxreg>() - 16usize];
    ["Alignment of _libc_fpxreg"][::std::mem::align_of::<_libc_fpxreg>() - 2usize];
    ["Offset of field: _libc_fpxreg::significand"]
        [::std::mem::offset_of!(_libc_fpxreg, significand) - 0usize];
    ["Offset of field: _libc_fpxreg::exponent"]
        [::std::mem::offset_of!(_libc_fpxreg, exponent) - 8usize];
    ["Offset of field: _libc_fpxreg::__glibc_reserved1"]
        [::std::mem::offset_of!(_libc_fpxreg, __glibc_reserved1) - 10usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _libc_xmmreg {
    pub element: [__uint32_t; 4usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _libc_xmmreg"][::std::mem::size_of::<_libc_xmmreg>() - 16usize];
    ["Alignment of _libc_xmmreg"][::std::mem::align_of::<_libc_xmmreg>() - 4usize];
    ["Offset of field: _libc_xmmreg::element"]
        [::std::mem::offset_of!(_libc_xmmreg, element) - 0usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _libc_fpstate {
    pub cwd: __uint16_t,
    pub swd: __uint16_t,
    pub ftw: __uint16_t,
    pub fop: __uint16_t,
    pub rip: __uint64_t,
    pub rdp: __uint64_t,
    pub mxcsr: __uint32_t,
    pub mxcr_mask: __uint32_t,
    pub _st: [_libc_fpxreg; 8usize],
    pub _xmm: [_libc_xmmreg; 16usize],
    pub __glibc_reserved1: [__uint32_t; 24usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of _libc_fpstate"][::std::mem::size_of::<_libc_fpstate>() - 512usize];
    ["Alignment of _libc_fpstate"][::std::mem::align_of::<_libc_fpstate>() - 8usize];
    ["Offset of field: _libc_fpstate::cwd"][::std::mem::offset_of!(_libc_fpstate, cwd) - 0usize];
    ["Offset of field: _libc_fpstate::swd"][::std::mem::offset_of!(_libc_fpstate, swd) - 2usize];
    ["Offset of field: _libc_fpstate::ftw"][::std::mem::offset_of!(_libc_fpstate, ftw) - 4usize];
    ["Offset of field: _libc_fpstate::fop"][::std::mem::offset_of!(_libc_fpstate, fop) - 6usize];
    ["Offset of field: _libc_fpstate::rip"][::std::mem::offset_of!(_libc_fpstate, rip) - 8usize];
    ["Offset of field: _libc_fpstate::rdp"][::std::mem::offset_of!(_libc_fpstate, rdp) - 16usize];
    ["Offset of field: _libc_fpstate::mxcsr"]
        [::std::mem::offset_of!(_libc_fpstate, mxcsr) - 24usize];
    ["Offset of field: _libc_fpstate::mxcr_mask"]
        [::std::mem::offset_of!(_libc_fpstate, mxcr_mask) - 28usize];
    ["Offset of field: _libc_fpstate::_st"][::std::mem::offset_of!(_libc_fpstate, _st) - 32usize];
    ["Offset of field: _libc_fpstate::_xmm"]
        [::std::mem::offset_of!(_libc_fpstate, _xmm) - 160usize];
    ["Offset of field: _libc_fpstate::__glibc_reserved1"]
        [::std::mem::offset_of!(_libc_fpstate, __glibc_reserved1) - 416usize];
};
pub type fpregset_t = *mut _libc_fpstate;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mcontext_t {
    pub gregs: gregset_t,
    pub fpregs: fpregset_t,
    pub __reserved1: [::std::os::raw::c_ulonglong; 8usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of mcontext_t"][::std::mem::size_of::<mcontext_t>() - 256usize];
    ["Alignment of mcontext_t"][::std::mem::align_of::<mcontext_t>() - 8usize];
    ["Offset of field: mcontext_t::gregs"][::std::mem::offset_of!(mcontext_t, gregs) - 0usize];
    ["Offset of field: mcontext_t::fpregs"][::std::mem::offset_of!(mcontext_t, fpregs) - 184usize];
    ["Offset of field: mcontext_t::__reserved1"]
        [::std::mem::offset_of!(mcontext_t, __reserved1) - 192usize];
};
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ucontext_t {
    pub uc_flags: ::std::os::raw::c_ulong,
    pub uc_link: *mut ucontext_t,
    pub uc_stack: stack_t,
    pub uc_mcontext: mcontext_t,
    pub uc_sigmask: sigset_t,
    pub __fpregs_mem: _libc_fpstate,
    pub __ssp: [::std::os::raw::c_ulonglong; 4usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of ucontext_t"][::std::mem::size_of::<ucontext_t>() - 968usize];
    ["Alignment of ucontext_t"][::std::mem::align_of::<ucontext_t>() - 8usize];
    ["Offset of field: ucontext_t::uc_flags"]
        [::std::mem::offset_of!(ucontext_t, uc_flags) - 0usize];
    ["Offset of field: ucontext_t::uc_link"][::std::mem::offset_of!(ucontext_t, uc_link) - 8usize];
    ["Offset of field: ucontext_t::uc_stack"]
        [::std::mem::offset_of!(ucontext_t, uc_stack) - 16usize];
    ["Offset of field: ucontext_t::uc_mcontext"]
        [::std::mem::offset_of!(ucontext_t, uc_mcontext) - 40usize];
    ["Offset of field: ucontext_t::uc_sigmask"]
        [::std::mem::offset_of!(ucontext_t, uc_sigmask) - 296usize];
    ["Offset of field: ucontext_t::__fpregs_mem"]
        [::std::mem::offset_of!(ucontext_t, __fpregs_mem) - 424usize];
    ["Offset of field: ucontext_t::__ssp"][::std::mem::offset_of!(ucontext_t, __ssp) - 936usize];
};
pub type unw_word_t = u64;
pub type unw_sword_t = i64;
pub type unw_tdep_fpreg_t = u128;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_tdep_save_loc {
    pub unused: ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_tdep_save_loc"][::std::mem::size_of::<unw_tdep_save_loc>() - 1usize];
    ["Alignment of unw_tdep_save_loc"][::std::mem::align_of::<unw_tdep_save_loc>() - 1usize];
    ["Offset of field: unw_tdep_save_loc::unused"]
        [::std::mem::offset_of!(unw_tdep_save_loc, unused) - 0usize];
};
pub type unw_tdep_save_loc_t = unw_tdep_save_loc;
pub type unw_tdep_context_t = ucontext_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_tdep_proc_info_t {
    pub unused: ::std::os::raw::c_char,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_tdep_proc_info_t"][::std::mem::size_of::<unw_tdep_proc_info_t>() - 1usize];
    ["Alignment of unw_tdep_proc_info_t"][::std::mem::align_of::<unw_tdep_proc_info_t>() - 1usize];
    ["Offset of field: unw_tdep_proc_info_t::unused"]
        [::std::mem::offset_of!(unw_tdep_proc_info_t, unused) - 0usize];
};
pub const unw_dyn_operation_t_UNW_DYN_STOP: unw_dyn_operation_t = 0;
pub const unw_dyn_operation_t_UNW_DYN_SAVE_REG: unw_dyn_operation_t = 1;
pub const unw_dyn_operation_t_UNW_DYN_SPILL_FP_REL: unw_dyn_operation_t = 2;
pub const unw_dyn_operation_t_UNW_DYN_SPILL_SP_REL: unw_dyn_operation_t = 3;
pub const unw_dyn_operation_t_UNW_DYN_ADD: unw_dyn_operation_t = 4;
pub const unw_dyn_operation_t_UNW_DYN_POP_FRAMES: unw_dyn_operation_t = 5;
pub const unw_dyn_operation_t_UNW_DYN_LABEL_STATE: unw_dyn_operation_t = 6;
pub const unw_dyn_operation_t_UNW_DYN_COPY_STATE: unw_dyn_operation_t = 7;
pub const unw_dyn_operation_t_UNW_DYN_ALIAS: unw_dyn_operation_t = 8;
pub type unw_dyn_operation_t = ::std::os::raw::c_uint;
pub const unw_dyn_info_format_t_UNW_INFO_FORMAT_DYNAMIC: unw_dyn_info_format_t = 0;
pub const unw_dyn_info_format_t_UNW_INFO_FORMAT_TABLE: unw_dyn_info_format_t = 1;
pub const unw_dyn_info_format_t_UNW_INFO_FORMAT_REMOTE_TABLE: unw_dyn_info_format_t = 2;
pub const unw_dyn_info_format_t_UNW_INFO_FORMAT_ARM_EXIDX: unw_dyn_info_format_t = 3;
pub const unw_dyn_info_format_t_UNW_INFO_FORMAT_IP_OFFSET: unw_dyn_info_format_t = 4;
pub type unw_dyn_info_format_t = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_dyn_op {
    pub tag: i8,
    pub qp: i8,
    pub reg: i16,
    pub when: i32,
    pub val: unw_word_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_dyn_op"][::std::mem::size_of::<unw_dyn_op>() - 16usize];
    ["Alignment of unw_dyn_op"][::std::mem::align_of::<unw_dyn_op>() - 8usize];
    ["Offset of field: unw_dyn_op::tag"][::std::mem::offset_of!(unw_dyn_op, tag) - 0usize];
    ["Offset of field: unw_dyn_op::qp"][::std::mem::offset_of!(unw_dyn_op, qp) - 1usize];
    ["Offset of field: unw_dyn_op::reg"][::std::mem::offset_of!(unw_dyn_op, reg) - 2usize];
    ["Offset of field: unw_dyn_op::when"][::std::mem::offset_of!(unw_dyn_op, when) - 4usize];
    ["Offset of field: unw_dyn_op::val"][::std::mem::offset_of!(unw_dyn_op, val) - 8usize];
};
pub type unw_dyn_op_t = unw_dyn_op;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_dyn_region_info {
    pub next: *mut unw_dyn_region_info,
    pub insn_count: i32,
    pub op_count: u32,
    pub op: [unw_dyn_op_t; 1usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_dyn_region_info"][::std::mem::size_of::<unw_dyn_region_info>() - 32usize];
    ["Alignment of unw_dyn_region_info"][::std::mem::align_of::<unw_dyn_region_info>() - 8usize];
    ["Offset of field: unw_dyn_region_info::next"]
        [::std::mem::offset_of!(unw_dyn_region_info, next) - 0usize];
    ["Offset of field: unw_dyn_region_info::insn_count"]
        [::std::mem::offset_of!(unw_dyn_region_info, insn_count) - 8usize];
    ["Offset of field: unw_dyn_region_info::op_count"]
        [::std::mem::offset_of!(unw_dyn_region_info, op_count) - 12usize];
    ["Offset of field: unw_dyn_region_info::op"]
        [::std::mem::offset_of!(unw_dyn_region_info, op) - 16usize];
};
pub type unw_dyn_region_info_t = unw_dyn_region_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_dyn_proc_info {
    pub name_ptr: unw_word_t,
    pub handler: unw_word_t,
    pub flags: u32,
    pub pad0: i32,
    pub regions: *mut unw_dyn_region_info_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_dyn_proc_info"][::std::mem::size_of::<unw_dyn_proc_info>() - 32usize];
    ["Alignment of unw_dyn_proc_info"][::std::mem::align_of::<unw_dyn_proc_info>() - 8usize];
    ["Offset of field: unw_dyn_proc_info::name_ptr"]
        [::std::mem::offset_of!(unw_dyn_proc_info, name_ptr) - 0usize];
    ["Offset of field: unw_dyn_proc_info::handler"]
        [::std::mem::offset_of!(unw_dyn_proc_info, handler) - 8usize];
    ["Offset of field: unw_dyn_proc_info::flags"]
        [::std::mem::offset_of!(unw_dyn_proc_info, flags) - 16usize];
    ["Offset of field: unw_dyn_proc_info::pad0"]
        [::std::mem::offset_of!(unw_dyn_proc_info, pad0) - 20usize];
    ["Offset of field: unw_dyn_proc_info::regions"]
        [::std::mem::offset_of!(unw_dyn_proc_info, regions) - 24usize];
};
pub type unw_dyn_proc_info_t = unw_dyn_proc_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_dyn_table_info {
    pub name_ptr: unw_word_t,
    pub segbase: unw_word_t,
    pub table_len: unw_word_t,
    pub table_data: *mut unw_word_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_dyn_table_info"][::std::mem::size_of::<unw_dyn_table_info>() - 32usize];
    ["Alignment of unw_dyn_table_info"][::std::mem::align_of::<unw_dyn_table_info>() - 8usize];
    ["Offset of field: unw_dyn_table_info::name_ptr"]
        [::std::mem::offset_of!(unw_dyn_table_info, name_ptr) - 0usize];
    ["Offset of field: unw_dyn_table_info::segbase"]
        [::std::mem::offset_of!(unw_dyn_table_info, segbase) - 8usize];
    ["Offset of field: unw_dyn_table_info::table_len"]
        [::std::mem::offset_of!(unw_dyn_table_info, table_len) - 16usize];
    ["Offset of field: unw_dyn_table_info::table_data"]
        [::std::mem::offset_of!(unw_dyn_table_info, table_data) - 24usize];
};
pub type unw_dyn_table_info_t = unw_dyn_table_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_dyn_remote_table_info {
    pub name_ptr: unw_word_t,
    pub segbase: unw_word_t,
    pub table_len: unw_word_t,
    pub table_data: unw_word_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_dyn_remote_table_info"]
        [::std::mem::size_of::<unw_dyn_remote_table_info>() - 32usize];
    ["Alignment of unw_dyn_remote_table_info"]
        [::std::mem::align_of::<unw_dyn_remote_table_info>() - 8usize];
    ["Offset of field: unw_dyn_remote_table_info::name_ptr"]
        [::std::mem::offset_of!(unw_dyn_remote_table_info, name_ptr) - 0usize];
    ["Offset of field: unw_dyn_remote_table_info::segbase"]
        [::std::mem::offset_of!(unw_dyn_remote_table_info, segbase) - 8usize];
    ["Offset of field: unw_dyn_remote_table_info::table_len"]
        [::std::mem::offset_of!(unw_dyn_remote_table_info, table_len) - 16usize];
    ["Offset of field: unw_dyn_remote_table_info::table_data"]
        [::std::mem::offset_of!(unw_dyn_remote_table_info, table_data) - 24usize];
};
pub type unw_dyn_remote_table_info_t = unw_dyn_remote_table_info;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct unw_dyn_info {
    pub next: *mut unw_dyn_info,
    pub prev: *mut unw_dyn_info,
    pub start_ip: unw_word_t,
    pub end_ip: unw_word_t,
    pub gp: unw_word_t,
    pub format: i32,
    pub pad: i32,
    pub load_offset: unw_word_t,
    pub u: unw_dyn_info__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union unw_dyn_info__bindgen_ty_1 {
    pub pi: unw_dyn_proc_info_t,
    pub ti: unw_dyn_table_info_t,
    pub rti: unw_dyn_remote_table_info_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_dyn_info__bindgen_ty_1"]
        [::std::mem::size_of::<unw_dyn_info__bindgen_ty_1>() - 32usize];
    ["Alignment of unw_dyn_info__bindgen_ty_1"]
        [::std::mem::align_of::<unw_dyn_info__bindgen_ty_1>() - 8usize];
    ["Offset of field: unw_dyn_info__bindgen_ty_1::pi"]
        [::std::mem::offset_of!(unw_dyn_info__bindgen_ty_1, pi) - 0usize];
    ["Offset of field: unw_dyn_info__bindgen_ty_1::ti"]
        [::std::mem::offset_of!(unw_dyn_info__bindgen_ty_1, ti) - 0usize];
    ["Offset of field: unw_dyn_info__bindgen_ty_1::rti"]
        [::std::mem::offset_of!(unw_dyn_info__bindgen_ty_1, rti) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_dyn_info"][::std::mem::size_of::<unw_dyn_info>() - 88usize];
    ["Alignment of unw_dyn_info"][::std::mem::align_of::<unw_dyn_info>() - 8usize];
    ["Offset of field: unw_dyn_info::next"][::std::mem::offset_of!(unw_dyn_info, next) - 0usize];
    ["Offset of field: unw_dyn_info::prev"][::std::mem::offset_of!(unw_dyn_info, prev) - 8usize];
    ["Offset of field: unw_dyn_info::start_ip"]
        [::std::mem::offset_of!(unw_dyn_info, start_ip) - 16usize];
    ["Offset of field: unw_dyn_info::end_ip"]
        [::std::mem::offset_of!(unw_dyn_info, end_ip) - 24usize];
    ["Offset of field: unw_dyn_info::gp"][::std::mem::offset_of!(unw_dyn_info, gp) - 32usize];
    ["Offset of field: unw_dyn_info::format"]
        [::std::mem::offset_of!(unw_dyn_info, format) - 40usize];
    ["Offset of field: unw_dyn_info::pad"][::std::mem::offset_of!(unw_dyn_info, pad) - 44usize];
    ["Offset of field: unw_dyn_info::load_offset"]
        [::std::mem::offset_of!(unw_dyn_info, load_offset) - 48usize];
    ["Offset of field: unw_dyn_info::u"][::std::mem::offset_of!(unw_dyn_info, u) - 56usize];
};
pub type unw_dyn_info_t = unw_dyn_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_dyn_info_list {
    pub version: u32,
    pub generation: u32,
    pub first: *mut unw_dyn_info_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_dyn_info_list"][::std::mem::size_of::<unw_dyn_info_list>() - 16usize];
    ["Alignment of unw_dyn_info_list"][::std::mem::align_of::<unw_dyn_info_list>() - 8usize];
    ["Offset of field: unw_dyn_info_list::version"]
        [::std::mem::offset_of!(unw_dyn_info_list, version) - 0usize];
    ["Offset of field: unw_dyn_info_list::generation"]
        [::std::mem::offset_of!(unw_dyn_info_list, generation) - 4usize];
    ["Offset of field: unw_dyn_info_list::first"]
        [::std::mem::offset_of!(unw_dyn_info_list, first) - 8usize];
};
pub type unw_dyn_info_list_t = unw_dyn_info_list;
pub const unw_error_t_UNW_ESUCCESS: unw_error_t = 0;
pub const unw_error_t_UNW_EUNSPEC: unw_error_t = 1;
pub const unw_error_t_UNW_ENOMEM: unw_error_t = 2;
pub const unw_error_t_UNW_EBADREG: unw_error_t = 3;
pub const unw_error_t_UNW_EREADONLYREG: unw_error_t = 4;
pub const unw_error_t_UNW_ESTOPUNWIND: unw_error_t = 5;
pub const unw_error_t_UNW_EINVALIDIP: unw_error_t = 6;
pub const unw_error_t_UNW_EBADFRAME: unw_error_t = 7;
pub const unw_error_t_UNW_EINVAL: unw_error_t = 8;
pub const unw_error_t_UNW_EBADVERSION: unw_error_t = 9;
pub const unw_error_t_UNW_ENOINFO: unw_error_t = 10;
pub type unw_error_t = ::std::os::raw::c_uint;
pub const unw_frame_regnum_t_UNW_REG_IP: unw_frame_regnum_t = 16;
pub const unw_frame_regnum_t_UNW_REG_SP: unw_frame_regnum_t = 7;
pub const unw_frame_regnum_t_UNW_REG_EH: unw_frame_regnum_t = 0;
pub const unw_frame_regnum_t_UNW_REG_LAST: unw_frame_regnum_t = 16;
pub type unw_frame_regnum_t = ::std::os::raw::c_uint;
pub const unw_caching_policy_t_UNW_CACHE_NONE: unw_caching_policy_t = 0;
pub const unw_caching_policy_t_UNW_CACHE_GLOBAL: unw_caching_policy_t = 1;
pub const unw_caching_policy_t_UNW_CACHE_PER_THREAD: unw_caching_policy_t = 2;
pub type unw_caching_policy_t = ::std::os::raw::c_uint;
pub const unw_init_local2_flags_t_UNW_INIT_SIGNAL_FRAME: unw_init_local2_flags_t = 1;
pub type unw_init_local2_flags_t = ::std::os::raw::c_uint;
pub type unw_regnum_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_cursor {
    pub opaque: [unw_word_t; 127usize],
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_cursor"][::std::mem::size_of::<unw_cursor>() - 1016usize];
    ["Alignment of unw_cursor"][::std::mem::align_of::<unw_cursor>() - 8usize];
    ["Offset of field: unw_cursor::opaque"][::std::mem::offset_of!(unw_cursor, opaque) - 0usize];
};
pub type unw_cursor_t = unw_cursor;
pub type unw_context_t = unw_tdep_context_t;
pub type unw_fpreg_t = unw_tdep_fpreg_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_addr_space {
    _unused: [u8; 0],
}
pub type unw_addr_space_t = *mut unw_addr_space;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_proc_info {
    pub start_ip: unw_word_t,
    pub end_ip: unw_word_t,
    pub lsda: unw_word_t,
    pub handler: unw_word_t,
    pub gp: unw_word_t,
    pub flags: unw_word_t,
    pub format: ::std::os::raw::c_int,
    pub unwind_info_size: ::std::os::raw::c_int,
    pub unwind_info: *mut ::std::os::raw::c_void,
    pub extra: unw_tdep_proc_info_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_proc_info"][::std::mem::size_of::<unw_proc_info>() - 72usize];
    ["Alignment of unw_proc_info"][::std::mem::align_of::<unw_proc_info>() - 8usize];
    ["Offset of field: unw_proc_info::start_ip"]
        [::std::mem::offset_of!(unw_proc_info, start_ip) - 0usize];
    ["Offset of field: unw_proc_info::end_ip"]
        [::std::mem::offset_of!(unw_proc_info, end_ip) - 8usize];
    ["Offset of field: unw_proc_info::lsda"][::std::mem::offset_of!(unw_proc_info, lsda) - 16usize];
    ["Offset of field: unw_proc_info::handler"]
        [::std::mem::offset_of!(unw_proc_info, handler) - 24usize];
    ["Offset of field: unw_proc_info::gp"][::std::mem::offset_of!(unw_proc_info, gp) - 32usize];
    ["Offset of field: unw_proc_info::flags"]
        [::std::mem::offset_of!(unw_proc_info, flags) - 40usize];
    ["Offset of field: unw_proc_info::format"]
        [::std::mem::offset_of!(unw_proc_info, format) - 48usize];
    ["Offset of field: unw_proc_info::unwind_info_size"]
        [::std::mem::offset_of!(unw_proc_info, unwind_info_size) - 52usize];
    ["Offset of field: unw_proc_info::unwind_info"]
        [::std::mem::offset_of!(unw_proc_info, unwind_info) - 56usize];
    ["Offset of field: unw_proc_info::extra"]
        [::std::mem::offset_of!(unw_proc_info, extra) - 64usize];
};
pub type unw_proc_info_t = unw_proc_info;
pub type unw_reg_states_callback = ::std::option::Option<
    unsafe extern "C" fn(
        token: *mut ::std::os::raw::c_void,
        reg_states_data: *mut ::std::os::raw::c_void,
        reg_states_data_size: usize,
        start_ip: unw_word_t,
        end_ip: unw_word_t,
    ) -> ::std::os::raw::c_int,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct unw_accessors {
    pub find_proc_info: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: unw_addr_space_t,
            arg2: unw_word_t,
            arg3: *mut unw_proc_info_t,
            arg4: ::std::os::raw::c_int,
            arg5: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub put_unwind_info: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: unw_addr_space_t,
            arg2: *mut unw_proc_info_t,
            arg3: *mut ::std::os::raw::c_void,
        ),
    >,
    pub get_dyn_info_list_addr: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: unw_addr_space_t,
            arg2: *mut unw_word_t,
            arg3: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub access_mem: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: unw_addr_space_t,
            arg2: unw_word_t,
            arg3: *mut unw_word_t,
            arg4: ::std::os::raw::c_int,
            arg5: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub access_reg: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: unw_addr_space_t,
            arg2: unw_regnum_t,
            arg3: *mut unw_word_t,
            arg4: ::std::os::raw::c_int,
            arg5: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub access_fpreg: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: unw_addr_space_t,
            arg2: unw_regnum_t,
            arg3: *mut unw_fpreg_t,
            arg4: ::std::os::raw::c_int,
            arg5: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub resume: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: unw_addr_space_t,
            arg2: *mut unw_cursor_t,
            arg3: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub get_proc_name: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: unw_addr_space_t,
            arg2: unw_word_t,
            arg3: *mut ::std::os::raw::c_char,
            arg4: usize,
            arg5: *mut unw_word_t,
            arg6: *mut ::std::os::raw::c_void,
        ) -> ::std::os::raw::c_int,
    >,
    pub ptrauth_insn_mask: ::std::option::Option<
        unsafe extern "C" fn(
            arg1: unw_addr_space_t,
            arg2: *mut ::std::os::raw::c_void,
        ) -> unw_word_t,
    >,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_accessors"][::std::mem::size_of::<unw_accessors>() - 72usize];
    ["Alignment of unw_accessors"][::std::mem::align_of::<unw_accessors>() - 8usize];
    ["Offset of field: unw_accessors::find_proc_info"]
        [::std::mem::offset_of!(unw_accessors, find_proc_info) - 0usize];
    ["Offset of field: unw_accessors::put_unwind_info"]
        [::std::mem::offset_of!(unw_accessors, put_unwind_info) - 8usize];
    ["Offset of field: unw_accessors::get_dyn_info_list_addr"]
        [::std::mem::offset_of!(unw_accessors, get_dyn_info_list_addr) - 16usize];
    ["Offset of field: unw_accessors::access_mem"]
        [::std::mem::offset_of!(unw_accessors, access_mem) - 24usize];
    ["Offset of field: unw_accessors::access_reg"]
        [::std::mem::offset_of!(unw_accessors, access_reg) - 32usize];
    ["Offset of field: unw_accessors::access_fpreg"]
        [::std::mem::offset_of!(unw_accessors, access_fpreg) - 40usize];
    ["Offset of field: unw_accessors::resume"]
        [::std::mem::offset_of!(unw_accessors, resume) - 48usize];
    ["Offset of field: unw_accessors::get_proc_name"]
        [::std::mem::offset_of!(unw_accessors, get_proc_name) - 56usize];
    ["Offset of field: unw_accessors::ptrauth_insn_mask"]
        [::std::mem::offset_of!(unw_accessors, ptrauth_insn_mask) - 64usize];
};
pub type unw_accessors_t = unw_accessors;
pub const unw_save_loc_type_UNW_SLT_NONE: unw_save_loc_type = 0;
pub const unw_save_loc_type_UNW_SLT_MEMORY: unw_save_loc_type = 1;
pub const unw_save_loc_type_UNW_SLT_REG: unw_save_loc_type = 2;
pub type unw_save_loc_type = ::std::os::raw::c_uint;
pub use self::unw_save_loc_type as unw_save_loc_type_t;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct unw_save_loc {
    pub type_: unw_save_loc_type_t,
    pub u: unw_save_loc__bindgen_ty_1,
    pub extra: unw_tdep_save_loc_t,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union unw_save_loc__bindgen_ty_1 {
    pub addr: unw_word_t,
    pub regnum: unw_regnum_t,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_save_loc__bindgen_ty_1"]
        [::std::mem::size_of::<unw_save_loc__bindgen_ty_1>() - 8usize];
    ["Alignment of unw_save_loc__bindgen_ty_1"]
        [::std::mem::align_of::<unw_save_loc__bindgen_ty_1>() - 8usize];
    ["Offset of field: unw_save_loc__bindgen_ty_1::addr"]
        [::std::mem::offset_of!(unw_save_loc__bindgen_ty_1, addr) - 0usize];
    ["Offset of field: unw_save_loc__bindgen_ty_1::regnum"]
        [::std::mem::offset_of!(unw_save_loc__bindgen_ty_1, regnum) - 0usize];
};
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of unw_save_loc"][::std::mem::size_of::<unw_save_loc>() - 24usize];
    ["Alignment of unw_save_loc"][::std::mem::align_of::<unw_save_loc>() - 8usize];
    ["Offset of field: unw_save_loc::type_"][::std::mem::offset_of!(unw_save_loc, type_) - 0usize];
    ["Offset of field: unw_save_loc::u"][::std::mem::offset_of!(unw_save_loc, u) - 8usize];
    ["Offset of field: unw_save_loc::extra"][::std::mem::offset_of!(unw_save_loc, extra) - 16usize];
};
pub type unw_save_loc_t = unw_save_loc;
