consolidate all RECV/SEND ioctls into a single RECEIVE/SEND pair

- changed the socket module to use thew new RECEIVE/SEND in all forms of recv() and send()
 - changed libnetwork to use the new RECEIVE/SEND
 - remove transfer_args processing from strace since the structure was removed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20581 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Hugo Santos
2007-04-05 14:26:46 +00:00
parent d1fca1ccb8
commit 17b77c3b92
9 changed files with 274 additions and 338 deletions
+4 -8
View File
@@ -89,14 +89,10 @@ struct net_socket_module_info {
int (*getsockopt)(net_socket *socket, int level, int option,
void *optionValue, int *_optionLength);
int (*listen)(net_socket *socket, int backlog);
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);
ssize_t (*receive)(net_socket *socket, struct msghdr *, void *data,
size_t length, int flags);
ssize_t (*send)(net_socket *socket, struct msghdr *, const void *data,
size_t length, int flags);
int (*setsockopt)(net_socket *socket, int level, int option,
const void *optionValue, int optionLength);
int (*shutdown)(net_socket *socket, int direction);
+5 -15
View File
@@ -29,12 +29,8 @@ enum {
// ops acting on an existing socket
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_RECEIVE, // message_args *
NET_STACK_SEND, // message_args *
NET_STACK_LISTEN, // int_args * (value = backlog)
NET_STACK_ACCEPT, // sockaddr_args *
NET_STACK_CONNECT, // sockaddr_args *
@@ -62,16 +58,10 @@ struct sockopt_args { // used by NET_STACK_SETSOCKOPT/_GETSOCKOPT
int length;
};
struct transfer_args { // used by NET_STACK_SEND/_RECV
void *data;
size_t data_length;
int flags;
struct sockaddr *address; // only used for recvfrom() and sendto()
socklen_t address_length; // ""
};
struct msghdr_args {
struct message_args {
struct msghdr *header;
void *data;
size_t length;
int flags;
};