1 #ifndef _IOSTUFF_H_INCLUDED_ 2 #define _IOSTUFF_H_INCLUDED_ 3 4 /*++ 5 /* NAME 6 /* iostuff 3h 7 /* SUMMARY 8 /* miscellaneous I/O primitives 9 /* SYNOPSIS 10 /* #include <iostuff.h> 11 /* DESCRIPTION 12 13 /* 14 * External interface. 15 */ 16 extern int non_blocking(int, int); 17 extern int close_on_exec(int, int); 18 extern int open_limit(int); 19 extern int poll_fd(int, int, int, int, int); 20 extern off_t get_file_limit(void); 21 extern void set_file_limit(off_t); 22 extern ssize_t peekfd(int); 23 extern ssize_t write_buf(int, const char *, ssize_t, int); 24 extern ssize_t timed_read(int, void *, size_t, int, void *); 25 extern ssize_t timed_write(int, const void *, size_t, int, void *); 26 extern void doze(unsigned); 27 extern void rand_sleep(unsigned, unsigned); 28 extern int duplex_pipe(int *); 29 extern int stream_recv_fd(int); 30 extern int stream_send_fd(int, int); 31 extern int unix_recv_fd(int); 32 extern int unix_send_fd(int, int); 33 extern ssize_t dummy_read(int, void *, size_t, int, void *); 34 extern ssize_t dummy_write(int, void *, size_t, int, void *); 35 36 #define readable(fd) poll_fd((fd), POLL_FD_READ, 0, 1, 0) 37 #define writable(fd) poll_fd((fd), POLL_FD_WRITE, 0, 1, 0) 38 39 #define read_wait(fd, timeout) poll_fd((fd), POLL_FD_READ, (timeout), 0, -1) 40 #define write_wait(fd, timeout) poll_fd((fd), POLL_FD_WRITE, (timeout), 0, -1) 41 42 extern int inet_windowsize; 43 extern void set_inet_windowsize(int, int); 44 45 #define POLL_FD_READ 0 46 #define POLL_FD_WRITE 1 47 48 #define BLOCKING 0 49 #define NON_BLOCKING 1 50 51 #define CLOSE_ON_EXEC 1 52 #define PASS_ON_EXEC 0 53 54 extern int unix_pass_fd_fix; 55 extern void set_unix_pass_fd_fix(const char *); 56 57 #define UNIX_PASS_FD_FIX_NONE (0) 58 #define UNIX_PASS_FD_FIX_CMSG_LEN (1<<0) 59 60 /* LICENSE 61 /* .ad 62 /* .fi 63 /* The Secure Mailer license must be distributed with this software. 64 /* AUTHOR(S) 65 /* Wietse Venema 66 /* IBM T.J. Watson Research 67 /* P.O. Box 704 68 /* Yorktown Heights, NY 10598, USA 69 /* CREATION DATE 70 /* Sat Jan 25 16:54:13 EST 1997 71 /*--*/ 72 73 #endif 74