diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 0423c2c474e6e3b0b630b853dfb8a1e429eccb58..3cb7f62add2a852741f2c9d51a1c51ebee222d80 100755 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -187,6 +187,22 @@ s! { pub iov_len: ::size_t, } + pub struct msghdr { + pub msg_name: *mut c_void, + pub msg_namelen: socklen_t, + pub msg_iov: *mut iovec, + pub msg_iovlen: ::c_int, + pub msg_control: *mut c_void, + pub msg_controllen: socklen_t, + pub msg_flags: ::c_int, + } + + pub struct cmsghdr { + pub cmsg_len: socklen_t, + pub cmsg_level: ::c_int, + pub cmsg_type: ::c_int, + } + // poll.h pub struct pollfd { pub fd : ::c_int, @@ -438,6 +454,13 @@ s! { pub pw_shell: *mut ::c_char, } + // epoll.h + + pub struct epoll_event { + pub events: u32, + pub u64: u64, + } + // rtpLibCommon.h pub struct RTP_DESC { pub status : ::c_int, @@ -805,6 +828,21 @@ pub const FIOSQUEEZE: ::c_int = 15; pub const FIONBIO: ::c_int = 16; pub const _POSIX_PATH_MAX: ::c_int = 256; +// epoll.h +pub const EPOLLIN: ::c_int = 0x1; +pub const EPOLLPRI: ::c_int = 0x2; +pub const EPOLLOUT: ::c_int = 0x4; +pub const EPOLLERR: ::c_int = 0x8; +pub const EPOLLHUP: ::c_int = 0x10; +pub const EPOLLRDHUP: ::c_int = 0x2000; +pub const EPOLLONESHOT: ::c_int = 1 << 30; +pub const EPOLLET: ::c_int = 1 << 31; + + +pub const EPOLL_CTL_ADD: ::c_int = 1; +pub const EPOLL_CTL_DEL: ::c_int = 2; +pub const EPOLL_CTL_MOD: ::c_int = 3; + // Some poll stuff pub const POLLIN: ::c_short = 0x0001; pub const POLLPRI: ::c_short = 0x0002; @@ -1743,6 +1781,12 @@ extern "C" { pFromLen: *mut ::socklen_t, ) -> ::ssize_t; + pub fn recvmsg( + socket: ::c_int, + mp: *mut ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; + // socket.h pub fn send( socket: ::c_int, @@ -1751,6 +1795,12 @@ extern "C" { flags: ::c_int, ) -> ::ssize_t; + pub fn sendmsg( + socket: ::c_int, + mp: *const ::msghdr, + flags: ::c_int, + ) -> ::ssize_t; + // socket.h pub fn sendto( socket: ::c_int, @@ -2054,6 +2104,30 @@ extern "C" { iovcnt: ::c_int, ) -> ::ssize_t; + // epoll.h + pub fn epoll_create(size: ::c_int) -> ::c_int; + pub fn epoll_create1(flags: ::c_int) -> ::c_int; + + pub fn epoll_ctl( + epfd: ::c_int, + op: ::c_int, + fd: ::c_int, + event: *mut ::epoll_event + ) -> ::c_int; + + pub fn epoll_create_and_ctl( + num: ::c_int, + fds: *mut ::c_int, + event: *mut ::epoll_event + ) -> ::c_int; + + pub fn epoll_wait( + epfd: ::c_int, + events: *mut ::epoll_event, + maxevents: ::c_int, + timeout: ::c_int + ) -> ::c_int; + // randomNumGen.h pub fn randBytes(buf: *mut c_uchar, length: c_int) -> c_int; pub fn randABytes(buf: *mut c_uchar, length: c_int) -> c_int;