Skip to content

Instantly share code, notes, and snippets.

@db48x
Created July 25, 2017 14:28
Show Gist options
  • Save db48x/302f6944012baae11ee8f659bb5d9b0a to your computer and use it in GitHub Desktop.
Save db48x/302f6944012baae11ee8f659bb5d9b0a to your computer and use it in GitHub Desktop.
#[repr(C)]
#[derive(Debug, Copy)]
pub struct specbinding {
pub _bitfield_1: u8,
pub unwind: __BindgenUnionField<specbinding__bindgen_ty_1>,
pub unwind_ptr: __BindgenUnionField<specbinding__bindgen_ty_2>,
pub unwind_int: __BindgenUnionField<specbinding__bindgen_ty_3>,
pub unwind_void: __BindgenUnionField<specbinding__bindgen_ty_4>,
pub let_: __BindgenUnionField<specbinding__bindgen_ty_5>,
pub bt: __BindgenUnionField<specbinding__bindgen_ty_6>,
pub bindgen_union_field: [u64; 5usize],
}
union specbinding
{
ENUM_BF (specbind_tag) kind : CHAR_BIT;
struct {
ENUM_BF (specbind_tag) kind : CHAR_BIT;
void (*func) (Lisp_Object);
Lisp_Object arg;
} unwind;
struct {
ENUM_BF (specbind_tag) kind : CHAR_BIT;
void (*func) (void *);
void *arg;
} unwind_ptr;
struct {
ENUM_BF (specbind_tag) kind : CHAR_BIT;
void (*func) (int);
int arg;
} unwind_int;
struct {
ENUM_BF (specbind_tag) kind : CHAR_BIT;
void (*func) (void);
} unwind_void;
struct {
ENUM_BF (specbind_tag) kind : CHAR_BIT;
/* `where' is not used in the case of SPECPDL_LET. */
Lisp_Object symbol, old_value, where;
/* Normally this is unused; but it is set to the symbol's
current value when a thread is swapped out. */
Lisp_Object saved_value;
} let;
struct {
ENUM_BF (specbind_tag) kind : CHAR_BIT;
bool_bf debug_on_exit : 1;
Lisp_Object function;
Lisp_Object *args;
ptrdiff_t nargs;
} bt;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment