use sc::syscall;
use crate::platform::{Fd, SocketAddressInet, SocketArgUnix};
use crate::Result;
#[inline]
pub fn bind_unix(sock_fd: Fd, socket_address: &SocketArgUnix) -> Result<()> {
let res = unsafe {
syscall!(
BIND,
sock_fd.0,
core::ptr::addr_of!(socket_address.addr),
socket_address.addr_len
)
};
bail_on_below_zero!(res, "`BIND` syscall failed");
Ok(())
}
pub fn bind_inet(sock_fd: Fd, socket_address_inet: &SocketAddressInet) -> Result<()> {
let res = unsafe {
syscall!(
BIND,
sock_fd.0,
core::ptr::from_ref::<SocketAddressInet>(socket_address_inet),
SocketAddressInet::LENGTH
)
};
bail_on_below_zero!(res, "`BIND` syscall failed");
Ok(())
}