common.h
00001
#ifndef IO_BUF__COMMON__H__
00002
#define IO_BUF__COMMON__H__
00003
00004
#include <fcntl.h>
00005
00006
#define LF ((char)10)
00007
#define CR ((char)13)
00008
#define CRLF "\015\012"
00009
00010
struct str;
00011
00025 #define IOBUF_EOF 1
00026
00027 #define IOBUF_ERROR 2
00028
00029 #define IOBUF_TIMEOUT 4
00030
00031 #define IOBUF_BADFLAGS 0xf
00032
00033 #define IOBUF_SEEKABLE 0x10
00034
00035 #define IOBUF_NEEDSCLOSE 0x20
00036
00037 #define IOBUF_NEEDSFREE 0x40
00038
00039 #define IOBUF_NEEDSMUNMAP 0x80
00040
extern unsigned iobuf_bufsize;
00041
00042
00043
00048 struct iobuf
00049 {
00051 int fd;
00053 char*
buffer;
00055 unsigned bufsize;
00057 unsigned buflen;
00059 unsigned bufstart;
00061 unsigned offset;
00063 unsigned timeout;
00065 unsigned flags;
00067 int errnum;
00068 };
00069
typedef struct iobuf iobuf;
00070
00072 #define IOBUF_SET_ERROR(io) \
00073
do{ \
00074
io->flags |= IOBUF_ERROR; \
00075
io->errnum = errno; \
00076
return 0; \
00077
}while(0)
00078
00079
int iobuf_init(iobuf* io,
int fd,
unsigned bufsize,
char* buffer,
00080
unsigned flags);
00081
int iobuf_close(iobuf* io);
00083 #define iobuf_closed(io) ((io)->fd == -1)
00084
00085 #define iobuf_error(io) ((io)->flags & IOBUF_ERROR)
00086
00087 #define iobuf_timedout(io) ((io)->flags & IOBUF_TIMEOUT)
00088
00089 #define iobuf_bad(io) ((io)->flags & IOBUF_BADFLAGS)
00090
int iobuf_timeout(iobuf* io,
int poll_out);
00091
00092
00093
#endif
Generated on Mon Nov 15 14:50:26 2004 for bglibs by
1.3.8