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 */ 16extern int non_blocking(int, int); 17extern int close_on_exec(int, int); 18extern int open_limit(int); 19extern int poll_fd(int, int, int, int, int); 20extern off_t get_file_limit(void); 21extern void set_file_limit(off_t); 22extern ssize_t peekfd(int); 23extern ssize_t write_buf(int, const char *, ssize_t, int); 24extern ssize_t timed_read(int, void *, size_t, int, void *); 25extern ssize_t timed_write(int, void *, size_t, int, void *); 26extern void doze(unsigned); 27extern void rand_sleep(unsigned, unsigned); 28extern int duplex_pipe(int *); 29extern int stream_recv_fd(int); 30extern int stream_send_fd(int, int); 31extern int unix_recv_fd(int); 32extern int unix_send_fd(int, int); 33extern ssize_t dummy_read(int, void *, size_t, int, void *); 34extern 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 42extern int inet_windowsize; 43extern 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 54extern int unix_pass_fd_fix; 55extern 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