diff --git a/headers/private/net/net_socket.h b/headers/private/net/net_socket.h new file mode 100644 index 0000000000..a83ef52ef2 --- /dev/null +++ b/headers/private/net/net_socket.h @@ -0,0 +1,86 @@ +#ifndef _NET_SOCKET_H +#define _NET_SOCKET_H + +#include + +uint32 sb_max; + +/* Function prototypes */ + +/* These are the ones we export to libnet.so */ + +int initsocket(void **); +int socreate (int, struct socket **, int, int); +int soshutdown(void *, int); +int soclose (void *); + +int sobind (void *, char *, int); +int solisten (void *, int); +int soconnect (void *, char *, int); +int soaccept (void *, void **, void *, int *); + +int writeit (void *, struct iovec *, int); +int readit (void *, struct iovec *, int *); +int sendit (void *, struct msghdr *, int, int *); +int recvit (void *, struct msghdr *, char *, int *); + +//int so_ioctl (void *, int, void *, size_t); +int sosysctl (int *, uint, void *, size_t *, void *, size_t); +int sosetopt (void *, int, int, const void *, size_t); +int sogetopt (void *, int, int, void *, size_t *); + +int sogetpeername(void *, struct sockaddr *, int *); +int sogetsockname(void *, struct sockaddr *, int *); + + +/* these are all private to the stack...although may be shared with + * other network modules. + */ + +int sosend(struct socket *so, struct mbuf *addr, struct uio *uio, + struct mbuf *top, struct mbuf *control, int flags); + +struct socket *sonewconn(struct socket *head, int connstatus); +int set_socket_event_callback(void *, socket_event_callback, void *, int); +int soreserve (struct socket *so, uint32 sndcc, uint32 rcvcc); + +void sbrelease (struct sockbuf *sb); +int sbreserve (struct sockbuf *sb, uint32 cc); +void sbdrop (struct sockbuf *sb, int len); +void sbdroprecord (struct sockbuf *sb); +void sbflush (struct sockbuf *sb); +int sbwait (struct sockbuf *sb); +void sbappend (struct sockbuf *sb, struct mbuf *m); +int sbappendaddr (struct sockbuf *sb, struct sockaddr *asa, + struct mbuf *m0, struct mbuf *control); +int sbappendcontrol (struct sockbuf *sb, struct mbuf *m0, + struct mbuf *control); +void sbappendrecord (struct sockbuf *sb, struct mbuf *m0); +void sbcheck (struct sockbuf *sb); +void sbcompress (struct sockbuf *sb, struct mbuf *m, struct mbuf *n); +void sbinsertoob(struct sockbuf *, struct mbuf *); + +int soreceive (struct socket *so, struct mbuf **paddr, struct uio *uio, + struct mbuf **mp0, struct mbuf **controlp, int *flagsp); +void sowakeup(struct socket *so, struct sockbuf *sb); +int sbwait(struct sockbuf *sb); + +int sodisconnect(struct socket *); +void sofree(struct socket *); + +void sohasoutofband(struct socket *so); +void socantsendmore(struct socket *so); +void socantrcvmore(struct socket *so); +void soisconnected (struct socket *so); +void soisconnecting (struct socket *so); +void soisdisconnected (struct socket *so); +void soisdisconnecting (struct socket *so); +void soqinsque (struct socket *head, struct socket *so, int q); +int soqremque (struct socket *so, int q); +int sorflush(struct socket *so); + +int sb_lock(struct sockbuf *sb); +int nsleep(sem_id chan, char *msg, int timeo); +void wakeup(sem_id chan); + +#endif