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