sctp_sys/linux/
mod.rs

1// Copyright 2019 sctp-sys Developers
2//
3// Licensed under the Apache License, Version 2.0, <LICENSE-APACHE or
4// http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or
5// http://opensource.org/licenses/MIT>, at your option. This file may not be
6// copied, modified, or distributed except according to those terms.
7
8pub mod consts;
9pub use self::consts::*;
10
11use libc::{c_int, c_ulong, c_ushort, c_void, size_t, sockaddr, socklen_t, ssize_t};
12
13use super::common::{sctp_assoc_t, sctp_sndrcvinfo};
14
15extern "system" {
16    pub fn sctp_bindx(sock: c_int, sock_addr: *mut sockaddr, num: c_int, ty: c_int) -> c_int;
17    pub fn sctp_connectx(
18        sock: c_int,
19        sock_addr: *mut sockaddr,
20        addrcnt: c_int,
21        assoc: *mut sctp_assoc_t,
22    ) -> c_int;
23    pub fn sctp_freepaddrs(addrs: *mut sockaddr);
24    pub fn sctp_freeladdrs(addrs: *mut sockaddr);
25    pub fn sctp_getaddrlen(family: c_int) -> c_int;
26    pub fn sctp_getpaddrs(s: c_int, assoc: sctp_assoc_t, addrs: *mut *mut sockaddr) -> c_int;
27    pub fn sctp_getladdrs(s: c_int, assoc: sctp_assoc_t, addrs: *mut *mut sockaddr) -> c_int;
28    pub fn sctp_opt_info(
29        s: c_int,
30        assoc: sctp_assoc_t,
31        opt: c_int,
32        arg: *mut c_void,
33        size: *mut socklen_t,
34    ) -> c_int;
35    pub fn sctp_peeloff(s: c_int, assoc: sctp_assoc_t) -> c_int;
36    pub fn sctp_recvmsg(
37        s: c_int,
38        msg: *mut c_void,
39        len: size_t,
40        from: *mut sockaddr,
41        fromlen: *mut socklen_t,
42        sinfo: *mut sctp_sndrcvinfo,
43        flags: *mut c_int,
44    ) -> ssize_t;
45    pub fn sctp_send(
46        s: c_int,
47        msg: *const c_void,
48        len: size_t,
49        sinfo: *const sctp_sndrcvinfo,
50        flags: c_int,
51    ) -> ssize_t;
52    pub fn sctp_sendmsg(
53        s: c_int,
54        msg: *const c_void,
55        len: size_t,
56        to: *mut sockaddr,
57        tolen: socklen_t,
58        ppid: c_ulong,
59        flags: c_ulong,
60        stream_no: c_ushort,
61        ttl: c_ulong,
62        ctx: c_ulong,
63    ) -> ssize_t;
64}