1use crate::*;
4use libc::c_int;
5
6pub const UNW_TDEP_IP: u32 = x86_64_regnum_t_UNW_X86_64_RIP;
8pub const UNW_TDEP_SP: u32 = x86_64_regnum_t_UNW_X86_64_RSP;
9pub const UNW_TDEP_BP: u32 = x86_64_regnum_t_UNW_X86_64_RBP;
10pub const UNW_TDEP_EH: u32 = x86_64_regnum_t_UNW_X86_64_RAX;
11
12extern "C" {
14 #[link_name = "_Ux86_64_create_addr_space"]
15 pub fn unw_create_addr_space(
16 accessors: *mut unw_accessors_t,
17 byteorder: c_int,
18 ) -> unw_addr_space_t;
19
20 #[link_name = "_Ux86_64_destroy_addr_space"]
21 pub fn unw_destroy_addr_space(arg1: unw_addr_space_t);
22
23 #[link_name = "_Ux86_64_get_accessors"]
24 pub fn unw_get_accessors(arg1: unw_addr_space_t) -> *mut unw_accessors_t;
25
26 #[link_name = "_Ux86_64_init_local"]
27 pub fn unw_init_local(
28 arg1: *mut unw_cursor_t,
29 arg2: *mut unw_context_t,
30 ) -> ::std::os::raw::c_int;
31
32 #[link_name = "_Ux86_64_init_remote"]
33 pub fn unw_init_remote(
34 arg1: *mut unw_cursor_t,
35 arg2: unw_addr_space_t,
36 arg3: *mut ::std::os::raw::c_void,
37 ) -> ::std::os::raw::c_int;
38
39 #[link_name = "_Ux86_64_step"]
40 pub fn unw_step(arg1: *mut unw_cursor_t) -> ::std::os::raw::c_int;
41
42 #[link_name = "_Ux86_64_resume"]
43 pub fn unw_resume(arg1: *mut unw_cursor_t) -> ::std::os::raw::c_int;
44
45 #[link_name = "_Ux86_64_get_proc_info"]
46 pub fn unw_get_proc_info(
47 arg1: *mut unw_cursor_t,
48 arg2: *mut unw_proc_info_t,
49 ) -> ::std::os::raw::c_int;
50
51 #[link_name = "_Ux86_64_get_reg"]
52 pub fn unw_get_reg(
53 arg1: *mut unw_cursor_t,
54 arg2: ::std::os::raw::c_int,
55 arg3: *mut unw_word_t,
56 ) -> ::std::os::raw::c_int;
57
58 #[link_name = "_Ux86_64_set_reg"]
59 pub fn unw_set_reg(
60 arg1: *mut unw_cursor_t,
61 arg2: ::std::os::raw::c_int,
62 arg3: unw_word_t,
63 ) -> ::std::os::raw::c_int;
64
65 #[link_name = "_Ux86_64_get_proc_name"]
66 pub fn unw_get_proc_name(
67 arg1: *mut unw_cursor_t,
68 arg2: *mut ::std::os::raw::c_char,
69 arg3: usize,
70 arg4: *mut unw_word_t,
71 ) -> ::std::os::raw::c_int;
72
73 #[link_name = "_Ux86_64_getcontext"]
74 pub fn unw_getcontext(arg1: *mut unw_tdep_context_t) -> ::std::os::raw::c_int;
75
76 #[link_name = "_Ux86_64_strerror"]
77 pub fn unw_strerror(arg1: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
78
79 #[link_name = "_Ux86_64_flush_cache"]
80 pub fn unw_flush_cache(arg1: unw_addr_space_t, arg2: unw_word_t, arg3: unw_word_t);
81
82 #[link_name = "_Ux86_64_set_caching_policy"]
83 pub fn unw_set_caching_policy(
84 arg1: unw_addr_space_t,
85 arg2: unw_caching_policy_t,
86 ) -> ::std::os::raw::c_int;
87
88 #[link_name = "_Ux86_64_get_fpreg"]
89 pub fn unw_get_fpreg(
90 arg1: *mut unw_cursor_t,
91 arg2: ::std::os::raw::c_int,
92 arg3: *mut unw_fpreg_t,
93 ) -> ::std::os::raw::c_int;
94
95 #[link_name = "_Ux86_64_regname"]
96 pub fn unw_regname(arg1: unw_regnum_t) -> *const ::std::os::raw::c_char;
97
98 #[link_name = "_Ux86_64_get_proc_info_by_ip"]
99 pub fn unw_get_proc_info_by_ip(
100 arg1: unw_addr_space_t,
101 arg2: unw_word_t,
102 arg3: *mut unw_proc_info_t,
103 arg4: *mut ::std::os::raw::c_void,
104 ) -> ::std::os::raw::c_int;
105
106 #[link_name = "_Ux86_64_set_fpreg"]
107 pub fn unw_set_fpreg(
108 arg1: *mut unw_cursor_t,
109 arg2: ::std::os::raw::c_int,
110 arg3: unw_fpreg_t,
111 ) -> ::std::os::raw::c_int;
112
113 #[link_name = "_Ux86_64_get_save_loc"]
114 pub fn unw_get_save_loc(
115 arg1: *mut unw_cursor_t,
116 arg2: ::std::os::raw::c_int,
117 arg3: *mut unw_save_loc_t,
118 ) -> ::std::os::raw::c_int;
119
120 #[link_name = "_Ux86_64_is_signal_frame"]
121 pub fn unw_is_signal_frame(arg1: *mut unw_cursor_t) -> ::std::os::raw::c_int;
122
123 #[link_name = "_Ux86_64_handle_signal_frame"]
124 pub fn unw_handle_signal_frame(arg1: *mut unw_cursor_t) -> ::std::os::raw::c_int;
125
126 #[link_name = "_Ux86_64_is_fpreg"]
127 pub fn unw_is_fpreg(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
128}