struct sockaddr_in {
	sin_family Int16
	sin_port Int16
	sin_addr Int64
	sin_zero Int64
}

socket(family Int, type Int, protocol Int) -> Int {
	return syscall(41, family, type, protocol)
}

accept(fd Int, address *Any, length Int) -> Int {
	return syscall(43, fd, address, length)
}

bind(fd Int, address *sockaddr_in, length Int) -> Int {
	return syscall(49, fd, address, length)
}

listen(fd Int, backlog Int) -> Int {
	return syscall(50, fd, backlog)
}

setsockopt(fd Int, level Int, optname Int, optval *Any, optlen Int) -> Int {
	return syscall(54, fd, level, optname, optval, optlen)
}