From 5e1d6fb269dc50eaa14bd5b7ec9df30e36787146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 4 Sep 2007 21:36:59 +0000 Subject: [PATCH] * Added _ALIGN() and _ALIGNBYTES macros. * Added cmsg macros. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22172 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/posix/sys/param.h | 19 +++++++++++++------ headers/posix/sys/socket.h | 34 +++++++++++++++++++++++++++------- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/headers/posix/sys/param.h b/headers/posix/sys/param.h index 2be22447d2..4571f309fe 100644 --- a/headers/posix/sys/param.h +++ b/headers/posix/sys/param.h @@ -1,26 +1,33 @@ +/* + * Copyright 2002-2007, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _SYS_PARAM_H #define _SYS_PARAM_H -/* -** Distributed under the terms of the OpenBeOS License. -*/ + #include + #define MAXPATHLEN PATH_MAX #define MAXSYMLINKS SYMLOOP_MAX #define NOFILE OPEN_MAX #ifndef MIN - #define MIN(a,b) (((a) < (b)) ? (a) : (b)) +# define MIN(a,b) (((a) < (b)) ? (a) : (b)) #endif #ifndef MAX - #define MAX(a,b) (((a) > (b)) ? (a) : (b)) +# define MAX(a,b) (((a) > (b)) ? (a) : (b)) #endif +#define _ALIGNBYTES (sizeof(long) - 1) +#define _ALIGN(p) \ + (((u_long)(p) + _ALIGNBYTES) &~ _ALIGNBYTES) + /* maximum possible length of this machine's hostname */ #ifndef MAXHOSTNAMELEN - #define MAXHOSTNAMELEN 256 +# define MAXHOSTNAMELEN 256 #endif #endif /* _SYS_PARAM_H */ diff --git a/headers/posix/sys/socket.h b/headers/posix/sys/socket.h index 4e845869a6..b8142a0147 100644 --- a/headers/posix/sys/socket.h +++ b/headers/posix/sys/socket.h @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006, Haiku Inc. All Rights Reserved. + * Copyright 2002-2007, Haiku Inc. All Rights Reserved. * Distributed under the terms of the MIT License. */ #ifndef _SYS_SOCKET_H @@ -122,17 +122,36 @@ struct cmsghdr { /* data follows */ }; +/* cmsghdr access macros */ +#define CMSG_DATA(cmsg) ((unsigned char *)(cmsg) \ + + _ALIGN(sizeof(struct cmsghdr))) +#define CMSG_NXTHDR(mhdr, cmsg) \ + (((char *)(cmsg) + _ALIGN((cmsg)->cmsg_len) \ + + _ALIGN(sizeof(struct cmsghdr)) \ + > (char *)(mhdr)->msg_control + (mhdr)->msg_controllen) \ + ? (struct cmsghdr *)NULL \ + : (struct cmsghdr *)((char *)(cmsg) + _ALIGN((cmsg)->cmsg_len))) +#define CMSG_FIRSTHDR(mhdr) \ + ((mhdr)->msg_controllen >= sizeof(struct cmsghdr) \ + ? (struct cmsghdr *)(mhdr)->msg_control \ + : (struct cmsghdr *)NULL) + #if __cplusplus extern "C" { #endif int accept(int socket, struct sockaddr *address, socklen_t *_addressLength); -int bind(int socket, const struct sockaddr *address, socklen_t addressLength); -int connect(int socket, const struct sockaddr *address, socklen_t addressLength); -int getpeername(int socket, struct sockaddr *address, socklen_t *_addressLength); -int getsockname(int socket, struct sockaddr *address, socklen_t *_addressLength); -int getsockopt(int socket, int level, int option, void *value, socklen_t *_length); +int bind(int socket, const struct sockaddr *address, + socklen_t addressLength); +int connect(int socket, const struct sockaddr *address, + socklen_t addressLength); +int getpeername(int socket, struct sockaddr *address, + socklen_t *_addressLength); +int getsockname(int socket, struct sockaddr *address, + socklen_t *_addressLength); +int getsockopt(int socket, int level, int option, void *value, + socklen_t *_length); int listen(int socket, int backlog); ssize_t recv(int socket, void *buffer, size_t length, int flags); ssize_t recvfrom(int socket, void *buffer, size_t bufferLength, int flags, @@ -142,7 +161,8 @@ ssize_t send(int socket, const void *buffer, size_t length, int flags); ssize_t sendmsg(int socket, const struct msghdr *message, int flags); ssize_t sendto(int socket, const void *message, size_t length, int flags, const struct sockaddr *address, socklen_t addressLength); -int setsockopt(int socket, int level, int option, const void *value, socklen_t length); +int setsockopt(int socket, int level, int option, const void *value, + socklen_t length); int shutdown(int socket, int how); int socket(int domain, int type, int protocol); int sockatmark(int socket);