1 #![allow(bad_style)] 2 #![no_std] 3 4 extern crate libc; 5 6 #[cfg(not(empty))] 7 pub use self::bindings::*; 8 #[cfg(not(empty))] 9 mod bindings { 10 use libc::{c_char, c_int, c_void, uintptr_t}; 11 12 pub type backtrace_syminfo_callback = extern "C" fn( 13 data: *mut c_void, 14 pc: uintptr_t, 15 symname: *const c_char, 16 symval: uintptr_t, 17 symsize: uintptr_t, 18 ); 19 pub type backtrace_full_callback = extern "C" fn( 20 data: *mut c_void, 21 pc: uintptr_t, 22 filename: *const c_char, 23 lineno: c_int, 24 function: *const c_char, 25 ) -> c_int; 26 pub type backtrace_error_callback = 27 extern "C" fn(data: *mut c_void, msg: *const c_char, errnum: c_int); 28 pub enum backtrace_state {} 29 30 extern "C" { 31 #[cfg_attr(rdos, link_name = "__rdos_backtrace_create_state")] 32 #[cfg_attr(rbt, link_name = "__rbt_backtrace_create_state")] backtrace_create_state( filename: *const c_char, threaded: c_int, error: backtrace_error_callback, data: *mut c_void, ) -> *mut backtrace_state33 pub fn backtrace_create_state( 34 filename: *const c_char, 35 threaded: c_int, 36 error: backtrace_error_callback, 37 data: *mut c_void, 38 ) -> *mut backtrace_state; 39 #[cfg_attr(rdos, link_name = "__rdos_backtrace_syminfo")] 40 #[cfg_attr(rbt, link_name = "__rbt_backtrace_syminfo")] backtrace_syminfo( state: *mut backtrace_state, addr: uintptr_t, cb: backtrace_syminfo_callback, error: backtrace_error_callback, data: *mut c_void, ) -> c_int41 pub fn backtrace_syminfo( 42 state: *mut backtrace_state, 43 addr: uintptr_t, 44 cb: backtrace_syminfo_callback, 45 error: backtrace_error_callback, 46 data: *mut c_void, 47 ) -> c_int; 48 #[cfg_attr(rdos, link_name = "__rdos_backtrace_pcinfo")] 49 #[cfg_attr(rbt, link_name = "__rbt_backtrace_pcinfo")] backtrace_pcinfo( state: *mut backtrace_state, addr: uintptr_t, cb: backtrace_full_callback, error: backtrace_error_callback, data: *mut c_void, ) -> c_int50 pub fn backtrace_pcinfo( 51 state: *mut backtrace_state, 52 addr: uintptr_t, 53 cb: backtrace_full_callback, 54 error: backtrace_error_callback, 55 data: *mut c_void, 56 ) -> c_int; 57 } 58 } 59