libutp_rs2_sys/
bindings.rs

1/* automatically generated by rust-bindgen 0.71.1 */
2
3pub const SHUT_RD: u32 = 0;
4pub const SHUT_WR: u32 = 1;
5pub const SHUT_RDWR: u32 = 2;
6pub const UTP_IOV_MAX: u32 = 1024;
7pub type __uint8_t = ::core::ffi::c_uchar;
8pub type sa_family_t = __uint8_t;
9pub type socklen_t = u32;
10pub type byte = ::core::ffi::c_uchar;
11pub type uint16 = ::core::ffi::c_ushort;
12pub type uint32 = ::core::ffi::c_uint;
13pub type uint64 = ::core::ffi::c_ulonglong;
14#[repr(C)]
15#[derive(Debug, Copy, Clone)]
16pub struct UTPSocket {
17    _unused: [u8; 0],
18}
19pub type utp_socket = UTPSocket;
20#[repr(C)]
21#[derive(Debug, Copy, Clone)]
22pub struct struct_utp_context {
23    _unused: [u8; 0],
24}
25pub type utp_context = struct_utp_context;
26pub const UTP_UDP_DONTFRAG: _bindgen_ty_1 = 2;
27pub type _bindgen_ty_1 = ::core::ffi::c_uint;
28pub const UTP_STATE_CONNECT: _bindgen_ty_2 = 1;
29pub const UTP_STATE_WRITABLE: _bindgen_ty_2 = 2;
30pub const UTP_STATE_EOF: _bindgen_ty_2 = 3;
31pub const UTP_STATE_DESTROYING: _bindgen_ty_2 = 4;
32pub type _bindgen_ty_2 = ::core::ffi::c_uint;
33unsafe extern "C" {
34    pub static mut utp_state_names: [*const ::core::ffi::c_char; 0usize];
35}
36pub const UTP_ECONNREFUSED: _bindgen_ty_3 = 0;
37pub const UTP_ECONNRESET: _bindgen_ty_3 = 1;
38pub const UTP_ETIMEDOUT: _bindgen_ty_3 = 2;
39pub type _bindgen_ty_3 = ::core::ffi::c_uint;
40unsafe extern "C" {
41    pub static mut utp_error_code_names: [*const ::core::ffi::c_char; 0usize];
42}
43pub const UTP_ON_FIREWALL: _bindgen_ty_4 = 0;
44pub const UTP_ON_ACCEPT: _bindgen_ty_4 = 1;
45pub const UTP_ON_CONNECT: _bindgen_ty_4 = 2;
46pub const UTP_ON_ERROR: _bindgen_ty_4 = 3;
47pub const UTP_ON_READ: _bindgen_ty_4 = 4;
48pub const UTP_ON_OVERHEAD_STATISTICS: _bindgen_ty_4 = 5;
49pub const UTP_ON_STATE_CHANGE: _bindgen_ty_4 = 6;
50pub const UTP_GET_READ_BUFFER_SIZE: _bindgen_ty_4 = 7;
51pub const UTP_ON_DELAY_SAMPLE: _bindgen_ty_4 = 8;
52pub const UTP_GET_UDP_MTU: _bindgen_ty_4 = 9;
53pub const UTP_GET_UDP_OVERHEAD: _bindgen_ty_4 = 10;
54pub const UTP_GET_MILLISECONDS: _bindgen_ty_4 = 11;
55pub const UTP_GET_MICROSECONDS: _bindgen_ty_4 = 12;
56pub const UTP_GET_RANDOM: _bindgen_ty_4 = 13;
57pub const UTP_LOG: _bindgen_ty_4 = 14;
58pub const UTP_SENDTO: _bindgen_ty_4 = 15;
59pub const UTP_LOG_NORMAL: _bindgen_ty_4 = 16;
60pub const UTP_LOG_MTU: _bindgen_ty_4 = 17;
61pub const UTP_LOG_DEBUG: _bindgen_ty_4 = 18;
62pub const UTP_SNDBUF: _bindgen_ty_4 = 19;
63pub const UTP_RCVBUF: _bindgen_ty_4 = 20;
64pub const UTP_TARGET_DELAY: _bindgen_ty_4 = 21;
65pub const UTP_ARRAY_SIZE: _bindgen_ty_4 = 22;
66pub type _bindgen_ty_4 = ::core::ffi::c_uint;
67unsafe extern "C" {
68    pub static mut utp_callback_names: [*const ::core::ffi::c_char; 0usize];
69}
70#[repr(C)]
71#[derive(Copy, Clone)]
72pub struct utp_callback_arguments {
73    pub context: *mut utp_context,
74    pub socket: *mut utp_socket,
75    pub len: usize,
76    pub flags: uint32,
77    pub callback_type: ::core::ffi::c_int,
78    pub buf: *const byte,
79    pub unnamed_field1: utp_callback_arguments__bindgen_ty_1,
80    pub unnamed_field2: utp_callback_arguments__bindgen_ty_2,
81}
82#[repr(C)]
83#[derive(Copy, Clone)]
84pub union utp_callback_arguments__bindgen_ty_1 {
85    pub address: *const sockaddr,
86    pub send: ::core::ffi::c_int,
87    pub sample_ms: ::core::ffi::c_int,
88    pub error_code: ::core::ffi::c_int,
89    pub state: ::core::ffi::c_int,
90}
91#[allow(clippy::unnecessary_operation, clippy::identity_op)]
92const _: () = {
93    ["Size of utp_callback_arguments__bindgen_ty_1"]
94        [::core::mem::size_of::<utp_callback_arguments__bindgen_ty_1>() - 8usize];
95    ["Alignment of utp_callback_arguments__bindgen_ty_1"]
96        [::core::mem::align_of::<utp_callback_arguments__bindgen_ty_1>() - 8usize];
97    ["Offset of field: utp_callback_arguments__bindgen_ty_1::address"]
98        [::core::mem::offset_of!(utp_callback_arguments__bindgen_ty_1, address) - 0usize];
99    ["Offset of field: utp_callback_arguments__bindgen_ty_1::send"]
100        [::core::mem::offset_of!(utp_callback_arguments__bindgen_ty_1, send) - 0usize];
101    ["Offset of field: utp_callback_arguments__bindgen_ty_1::sample_ms"]
102        [::core::mem::offset_of!(utp_callback_arguments__bindgen_ty_1, sample_ms) - 0usize];
103    ["Offset of field: utp_callback_arguments__bindgen_ty_1::error_code"]
104        [::core::mem::offset_of!(utp_callback_arguments__bindgen_ty_1, error_code) - 0usize];
105    ["Offset of field: utp_callback_arguments__bindgen_ty_1::state"]
106        [::core::mem::offset_of!(utp_callback_arguments__bindgen_ty_1, state) - 0usize];
107};
108#[repr(C)]
109#[derive(Copy, Clone)]
110pub union utp_callback_arguments__bindgen_ty_2 {
111    pub address_len: socklen_t,
112    pub type_: ::core::ffi::c_int,
113}
114#[allow(clippy::unnecessary_operation, clippy::identity_op)]
115const _: () = {
116    ["Size of utp_callback_arguments__bindgen_ty_2"]
117        [::core::mem::size_of::<utp_callback_arguments__bindgen_ty_2>() - 4usize];
118    ["Alignment of utp_callback_arguments__bindgen_ty_2"]
119        [::core::mem::align_of::<utp_callback_arguments__bindgen_ty_2>() - 4usize];
120    ["Offset of field: utp_callback_arguments__bindgen_ty_2::address_len"]
121        [::core::mem::offset_of!(utp_callback_arguments__bindgen_ty_2, address_len) - 0usize];
122    ["Offset of field: utp_callback_arguments__bindgen_ty_2::type_"]
123        [::core::mem::offset_of!(utp_callback_arguments__bindgen_ty_2, type_) - 0usize];
124};
125#[allow(clippy::unnecessary_operation, clippy::identity_op)]
126const _: () = {
127    ["Size of utp_callback_arguments"][::core::mem::size_of::<utp_callback_arguments>() - 56usize];
128    ["Alignment of utp_callback_arguments"]
129        [::core::mem::align_of::<utp_callback_arguments>() - 8usize];
130    ["Offset of field: utp_callback_arguments::context"]
131        [::core::mem::offset_of!(utp_callback_arguments, context) - 0usize];
132    ["Offset of field: utp_callback_arguments::socket"]
133        [::core::mem::offset_of!(utp_callback_arguments, socket) - 8usize];
134    ["Offset of field: utp_callback_arguments::len"]
135        [::core::mem::offset_of!(utp_callback_arguments, len) - 16usize];
136    ["Offset of field: utp_callback_arguments::flags"]
137        [::core::mem::offset_of!(utp_callback_arguments, flags) - 24usize];
138    ["Offset of field: utp_callback_arguments::callback_type"]
139        [::core::mem::offset_of!(utp_callback_arguments, callback_type) - 28usize];
140    ["Offset of field: utp_callback_arguments::buf"]
141        [::core::mem::offset_of!(utp_callback_arguments, buf) - 32usize];
142};
143pub type utp_callback_t =
144    ::core::option::Option<unsafe extern "C" fn(arg1: *mut utp_callback_arguments) -> uint64>;
145#[repr(C)]
146#[derive(Debug, Copy, Clone)]
147pub struct utp_context_stats {
148    pub _nraw_recv: [uint32; 5usize],
149    pub _nraw_send: [uint32; 5usize],
150}
151#[allow(clippy::unnecessary_operation, clippy::identity_op)]
152const _: () = {
153    ["Size of utp_context_stats"][::core::mem::size_of::<utp_context_stats>() - 40usize];
154    ["Alignment of utp_context_stats"][::core::mem::align_of::<utp_context_stats>() - 4usize];
155    ["Offset of field: utp_context_stats::_nraw_recv"]
156        [::core::mem::offset_of!(utp_context_stats, _nraw_recv) - 0usize];
157    ["Offset of field: utp_context_stats::_nraw_send"]
158        [::core::mem::offset_of!(utp_context_stats, _nraw_send) - 20usize];
159};
160#[repr(C)]
161#[derive(Debug, Copy, Clone)]
162pub struct utp_socket_stats {
163    pub nbytes_recv: uint64,
164    pub nbytes_xmit: uint64,
165    pub rexmit: uint32,
166    pub fastrexmit: uint32,
167    pub nxmit: uint32,
168    pub nrecv: uint32,
169    pub nduprecv: uint32,
170    pub mtu_guess: uint32,
171}
172#[allow(clippy::unnecessary_operation, clippy::identity_op)]
173const _: () = {
174    ["Size of utp_socket_stats"][::core::mem::size_of::<utp_socket_stats>() - 40usize];
175    ["Alignment of utp_socket_stats"][::core::mem::align_of::<utp_socket_stats>() - 8usize];
176    ["Offset of field: utp_socket_stats::nbytes_recv"]
177        [::core::mem::offset_of!(utp_socket_stats, nbytes_recv) - 0usize];
178    ["Offset of field: utp_socket_stats::nbytes_xmit"]
179        [::core::mem::offset_of!(utp_socket_stats, nbytes_xmit) - 8usize];
180    ["Offset of field: utp_socket_stats::rexmit"]
181        [::core::mem::offset_of!(utp_socket_stats, rexmit) - 16usize];
182    ["Offset of field: utp_socket_stats::fastrexmit"]
183        [::core::mem::offset_of!(utp_socket_stats, fastrexmit) - 20usize];
184    ["Offset of field: utp_socket_stats::nxmit"]
185        [::core::mem::offset_of!(utp_socket_stats, nxmit) - 24usize];
186    ["Offset of field: utp_socket_stats::nrecv"]
187        [::core::mem::offset_of!(utp_socket_stats, nrecv) - 28usize];
188    ["Offset of field: utp_socket_stats::nduprecv"]
189        [::core::mem::offset_of!(utp_socket_stats, nduprecv) - 32usize];
190    ["Offset of field: utp_socket_stats::mtu_guess"]
191        [::core::mem::offset_of!(utp_socket_stats, mtu_guess) - 36usize];
192};
193#[repr(C)]
194#[derive(Debug, Copy, Clone)]
195pub struct utp_iovec {
196    pub iov_base: *mut ::core::ffi::c_void,
197    pub iov_len: usize,
198}
199#[allow(clippy::unnecessary_operation, clippy::identity_op)]
200const _: () = {
201    ["Size of utp_iovec"][::core::mem::size_of::<utp_iovec>() - 16usize];
202    ["Alignment of utp_iovec"][::core::mem::align_of::<utp_iovec>() - 8usize];
203    ["Offset of field: utp_iovec::iov_base"][::core::mem::offset_of!(utp_iovec, iov_base) - 0usize];
204    ["Offset of field: utp_iovec::iov_len"][::core::mem::offset_of!(utp_iovec, iov_len) - 8usize];
205};
206unsafe extern "C" {
207    pub fn utp_init(version: ::core::ffi::c_int) -> *mut utp_context;
208}
209unsafe extern "C" {
210    pub fn utp_destroy(ctx: *mut utp_context);
211}
212unsafe extern "C" {
213    pub fn utp_set_callback(
214        ctx: *mut utp_context,
215        callback_name: ::core::ffi::c_int,
216        proc_: utp_callback_t,
217    );
218}
219unsafe extern "C" {
220    pub fn utp_context_set_userdata(
221        ctx: *mut utp_context,
222        userdata: *mut ::core::ffi::c_void,
223    ) -> *mut ::core::ffi::c_void;
224}
225unsafe extern "C" {
226    pub fn utp_context_get_userdata(ctx: *mut utp_context) -> *mut ::core::ffi::c_void;
227}
228unsafe extern "C" {
229    pub fn utp_context_set_option(
230        ctx: *mut utp_context,
231        opt: ::core::ffi::c_int,
232        val: ::core::ffi::c_int,
233    ) -> ::core::ffi::c_int;
234}
235unsafe extern "C" {
236    pub fn utp_context_get_option(
237        ctx: *mut utp_context,
238        opt: ::core::ffi::c_int,
239    ) -> ::core::ffi::c_int;
240}
241unsafe extern "C" {
242    pub fn utp_process_udp(
243        ctx: *mut utp_context,
244        buf: *const byte,
245        len: usize,
246        to: *const sockaddr,
247        tolen: socklen_t,
248    ) -> ::core::ffi::c_int;
249}
250unsafe extern "C" {
251    pub fn utp_process_icmp_error(
252        ctx: *mut utp_context,
253        buffer: *const byte,
254        len: usize,
255        to: *const sockaddr,
256        tolen: socklen_t,
257    ) -> ::core::ffi::c_int;
258}
259unsafe extern "C" {
260    pub fn utp_process_icmp_fragmentation(
261        ctx: *mut utp_context,
262        buffer: *const byte,
263        len: usize,
264        to: *const sockaddr,
265        tolen: socklen_t,
266        next_hop_mtu: uint16,
267    ) -> ::core::ffi::c_int;
268}
269unsafe extern "C" {
270    pub fn utp_check_timeouts(ctx: *mut utp_context);
271}
272unsafe extern "C" {
273    pub fn utp_issue_deferred_acks(ctx: *mut utp_context);
274}
275unsafe extern "C" {
276    pub fn utp_get_context_stats(ctx: *mut utp_context) -> *mut utp_context_stats;
277}
278unsafe extern "C" {
279    pub fn utp_create_socket(ctx: *mut utp_context) -> *mut utp_socket;
280}
281unsafe extern "C" {
282    pub fn utp_set_userdata(
283        s: *mut utp_socket,
284        userdata: *mut ::core::ffi::c_void,
285    ) -> *mut ::core::ffi::c_void;
286}
287unsafe extern "C" {
288    pub fn utp_get_userdata(s: *mut utp_socket) -> *mut ::core::ffi::c_void;
289}
290unsafe extern "C" {
291    pub fn utp_setsockopt(
292        s: *mut utp_socket,
293        opt: ::core::ffi::c_int,
294        val: ::core::ffi::c_int,
295    ) -> ::core::ffi::c_int;
296}
297unsafe extern "C" {
298    pub fn utp_getsockopt(s: *mut utp_socket, opt: ::core::ffi::c_int) -> ::core::ffi::c_int;
299}
300unsafe extern "C" {
301    pub fn utp_connect(
302        s: *mut utp_socket,
303        to: *const sockaddr,
304        tolen: socklen_t,
305    ) -> ::core::ffi::c_int;
306}
307unsafe extern "C" {
308    pub fn utp_write(s: *mut utp_socket, buf: *mut ::core::ffi::c_void, count: usize) -> isize;
309}
310unsafe extern "C" {
311    pub fn utp_writev(s: *mut utp_socket, iovec: *mut utp_iovec, num_iovecs: usize) -> isize;
312}
313unsafe extern "C" {
314    pub fn utp_getpeername(
315        s: *mut utp_socket,
316        addr: *mut sockaddr,
317        addrlen: *mut socklen_t,
318    ) -> ::core::ffi::c_int;
319}
320unsafe extern "C" {
321    pub fn utp_read_drained(s: *mut utp_socket);
322}
323unsafe extern "C" {
324    pub fn utp_get_delays(
325        s: *mut utp_socket,
326        ours: *mut uint32,
327        theirs: *mut uint32,
328        age: *mut uint32,
329    ) -> ::core::ffi::c_int;
330}
331unsafe extern "C" {
332    pub fn utp_get_stats(s: *mut utp_socket) -> *mut utp_socket_stats;
333}
334unsafe extern "C" {
335    pub fn utp_get_context(s: *mut utp_socket) -> *mut utp_context;
336}
337unsafe extern "C" {
338    pub fn utp_shutdown(s: *mut utp_socket, how: ::core::ffi::c_int);
339}
340unsafe extern "C" {
341    pub fn utp_close(s: *mut utp_socket);
342}