diff --git a/src/fdlib.h b/src/fdlib.h index 28a1f021f83584a2b30b72dd7e36ec5bbcf1b48f..94d3f6d72e388b8a820c49c872a8c4f48943ee4a 100644 --- a/src/fdlib.h +++ b/src/fdlib.h @@ -2,7 +2,7 @@ || This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information. -|| $Id: fdlib.h,v 1.60 2008/10/17 17:12:37 mast Exp $ +|| $Id: fdlib.h,v 1.61 2009/03/08 22:09:48 grubba Exp $ */ #ifndef FDLIB_H @@ -45,6 +45,7 @@ #define fd_BUFFERED 8 #define fd_BIDIRECTIONAL 16 #define fd_REVERSE 32 +#define fd_SEND_FD 64 #if defined(HAVE_WINSOCK_H) @@ -173,6 +174,7 @@ PMOD_EXPORT FD debug_fd_dup2(FD from, FD to); #define fd_RDONLY 1 #define fd_WRONLY 2 #define fd_RDWR 3 +#define fd_ACCMODE 3 #define fd_APPEND 4 #define fd_CREAT 8 #define fd_TRUNC 16 @@ -306,6 +308,11 @@ typedef off_t PIKE_OFF_T; #define fd_RDONLY O_RDONLY #define fd_WRONLY O_WRONLY #define fd_RDWR O_RDWR +#ifdef O_ACCMODE +#define fd_ACCMODE O_ACCMODE +#else +#define fd_ACCMODE (fd_RDONLY|fd_WRONLY|fd_RDWR) +#endif #define fd_APPEND O_APPEND #define fd_CREAT O_CREAT #define fd_TRUNC O_TRUNC @@ -410,7 +417,7 @@ typedef struct my_fd_set_s my_fd_set; #ifndef __amigaos__ #define PIPE_CAPABILITIES (fd_INTERPROCESSABLE | fd_BUFFERED | fd_CAN_NONBLOCK) #endif -#define UNIX_SOCKET_CAPABILITIES (fd_INTERPROCESSABLE | fd_BIDIRECTIONAL | fd_CAN_NONBLOCK) +#define UNIX_SOCKET_CAPABILITIES (fd_INTERPROCESSABLE | fd_BIDIRECTIONAL | fd_CAN_NONBLOCK | fd_SEND_FD) #define SOCKET_CAPABILITIES (fd_INTERPROCESSABLE | fd_BIDIRECTIONAL | fd_CAN_NONBLOCK | fd_CAN_SHUTDOWN) #endif /* Don't HAVE_WINSOCK */ @@ -435,6 +442,13 @@ typedef struct my_fd_set_s my_fd_set; #endif /* S_IFREG */ #endif /* !S_ISREG */ +#ifndef S_IFIFO +#define S_IFIFO 0x1000 +#endif +#ifndef S_IFSOCK +#define S_IFSOCK 0xc000 +#endif + PMOD_EXPORT int pike_make_pipe(int *fds); PMOD_EXPORT int fd_from_object(struct object *o); PMOD_EXPORT void create_proxy_pipe(struct object *o, int for_reading);