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