1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
use libc::{c_int, size_t, c_ulong, c_ushort, c_void, ssize_t, sockaddr, socklen_t};

use super::common::{sctp_assoc_t, sctp_sndrcvinfo};

extern "system" {
	pub fn sctp_bindx(sock: c_int, sock_addr: *mut sockaddr, num: c_int, ty: c_int) -> c_int;
	pub fn sctp_connectx(sock: c_int, sock_addr: *mut sockaddr, addrcnt: c_int,  assoc: *mut sctp_assoc_t) -> c_int;
	pub fn sctp_freepaddrs(addrs: *mut sockaddr);
	pub fn sctp_freeladdrs(addrs: *mut sockaddr);
	pub fn sctp_getaddrlen(family: c_int) -> c_int;
	pub fn sctp_getassocid(s: c_int, addr: *mut sockaddr) -> sctp_assoc_t;
	pub fn sctp_getpaddrs(s: c_int, assoc: sctp_assoc_t, addrs: *mut *mut sockaddr) -> c_int;
	pub fn sctp_getladdrs(s: c_int, assoc: sctp_assoc_t, addrs: *mut *mut sockaddr) -> c_int;
	pub fn sctp_opt_info(s: c_int, assoc: sctp_assoc_t, opt: c_int, arg: *mut c_void, size: *mut socklen_t) -> c_int;
	pub fn sctp_peeloff(s: c_int, assoc: sctp_assoc_t) -> c_int;
	pub fn sctp_recvmsg(s: c_int, msg: *mut c_void, len: size_t, from: *mut sockaddr, fromlen: *mut socklen_t, sinfo: *mut sctp_sndrcvinfo, flags: *mut c_int) -> ssize_t;
	pub fn sctp_send(s: c_int, msg: *const c_void, len: size_t, sinfo: *const sctp_sndrcvinfo, flags: c_int) -> ssize_t;
	pub fn sctp_sendmsg(s: c_int, msg: *const c_void, len: size_t, to: *mut sockaddr, tolen: socklen_t, ppid: c_ulong, flags: c_ulong, stream_no: c_ushort, ttl: c_ulong, ctx: c_ulong) -> ssize_t;
}