initial recvmsg and sendmsg implementations

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20562 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Hugo Santos
2007-04-04 17:39:43 +00:00
parent 0cac8bd145
commit dae7f8ea46
6 changed files with 224 additions and 8 deletions
+2
View File
@@ -92,9 +92,11 @@ struct net_socket_module_info {
ssize_t (*recv)(net_socket *socket, void *data, size_t length, int flags);
ssize_t (*recvfrom)(net_socket *socket, void *data, size_t length, int flags,
struct sockaddr *address, socklen_t *_addressLength);
ssize_t (*recvmsg)(net_socket *socket, msghdr *header, int flags);
ssize_t (*send)(net_socket *socket, const void *data, size_t length, int flags);
ssize_t (*sendto)(net_socket *socket, const void *data, size_t length,
int flags, const struct sockaddr *address, socklen_t addressLength);
ssize_t (*sendmsg)(net_socket *socket, msghdr *header, int flags);
int (*setsockopt)(net_socket *socket, int level, int option,
const void *optionValue, int optionLength);
int (*shutdown)(net_socket *socket, int direction);
+7
View File
@@ -31,8 +31,10 @@ enum {
NET_STACK_BIND, // sockaddr_args *
NET_STACK_RECVFROM, // struct msghdr *
NET_STACK_RECV, // transfer_args *
NET_STACK_RECVMSG, // msghdr_args *
NET_STACK_SENDTO, // struct msghdr *
NET_STACK_SEND, // transfer_args *
NET_STACK_SENDMSG, // msghdr_args *
NET_STACK_LISTEN, // int_args * (value = backlog)
NET_STACK_ACCEPT, // sockaddr_args *
NET_STACK_CONNECT, // sockaddr_args *
@@ -68,6 +70,11 @@ struct transfer_args { // used by NET_STACK_SEND/_RECV
socklen_t address_length; // ""
};
struct msghdr_args {
struct msghdr *header;
int flags;
};
struct socket_args { // used by NET_STACK_SOCKET
int family;
int type;