Skip to content
Snippets Groups Projects
uipc_syscalls.h 1.69 KiB
#ifndef UIPC_SYSCALLS_H
#define UIPC_SYSCALLS_H

#include <osv/file.h>
#include <bsd/sys/sys/mbuf.h>
#include <bsd/sys/sys/socket.h>

/* Private interface */
int kern_bind(int fd, struct sockaddr *sa);
int kern_accept(int s, struct sockaddr **name,
    socklen_t *namelen, struct file **fp, int *out_fd);
int kern_connect(int fd, struct sockaddr *sa);
int kern_sendit(int s, struct msghdr *mp, int flags,
    struct mbuf *control, ssize_t *bytes);
int kern_recvit(int s, struct msghdr *mp, struct mbuf **controlp, ssize_t* bytes);
int kern_setsockopt(int s, int level, int name, void *val, socklen_t valsize);
int kern_getsockopt(int s, int level, int name, void *val, socklen_t *valsize);

/* FreeBSD Interface */
int sys_socket(int domain, int type, int protocol, int *out_fd);
int sys_bind(int s, struct sockaddr *sa, int namelen);
int sys_listen(int s, int backlog);
int sys_accept(int s, struct sockaddr * name, socklen_t * namelen, int *out_fp);
int sys_connect(int s, struct sockaddr *sa, socklen_t len);
int sys_socketpair(int domain, int type, int protocol, int *rsv);
int sys_sendto(int s, caddr_t buf, size_t  len, int flags, caddr_t to,
    int tolen, ssize_t* bytes);
int sys_sendmsg(int s, struct msghdr* msg, int flags, ssize_t* bytes);
int sys_recvfrom(int s, caddr_t buf, size_t  len, int flags,
    struct sockaddr * __restrict from, socklen_t * __restrict fromlenaddr,
    ssize_t* bytes);
int sys_recvmsg(int s, struct msghdr *msg, int flags, ssize_t* bytes);
int sys_shutdown(int s, int how);
int sys_setsockopt(int s, int level, int name, caddr_t val, int valsize);
int sys_getsockopt(int s, int level, int name, void * __restrict val,
    socklen_t * __restrict avalsize);

#endif /* !UIPC_SYSCALLS_H */