bglibs
bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h
1#ifndef IO_BUF__COMMON__H__
2#define IO_BUF__COMMON__H__
3
4#include <fcntl.h>
5
6#define LF ((char)10)
7#define CR ((char)13)
8#define CRLF "\015\012"
9
10struct str;
11
25#define IOBUF_EOF 1
27#define IOBUF_ERROR 2
29#define IOBUF_TIMEOUT 4
31#define IOBUF_BADFLAGS 0xf
33#define IOBUF_SEEKABLE 0x10
35#define IOBUF_NEEDSCLOSE 0x20
37#define IOBUF_NEEDSFREE 0x40
39#define IOBUF_NEEDSMUNMAP 0x80
40extern unsigned iobuf_bufsize;
41
48struct iobuf
49{
51 int fd;
53 char* buffer;
55 unsigned bufsize;
57 unsigned buflen;
59 unsigned bufstart;
61 unsigned offset;
63 unsigned timeout;
65 unsigned flags;
67 int errnum;
68};
69typedef struct iobuf iobuf;
70
72#define IOBUF_SET_ERROR(io) \
73do{ \
74 io->flags |= IOBUF_ERROR; \
75 io->errnum = errno; \
76 return 0; \
77}while(0)
78
79int iobuf_init(iobuf* io, int fd, unsigned bufsize, char* buffer,
80 unsigned flags);
81int iobuf_close(iobuf* io);
83#define iobuf_closed(io) ((io)->fd == -1)
85#define iobuf_error(io) ((io)->flags & IOBUF_ERROR)
87#define iobuf_timedout(io) ((io)->flags & IOBUF_TIMEOUT)
89#define iobuf_bad(io) ((io)->flags & IOBUF_BADFLAGS)
90int iobuf_timeout(iobuf* io, int poll_out);
95#endif
int iobuf_close(iobuf *io)
Definition: iobuf_close.c:8
int iobuf_init(iobuf *io, int fd, unsigned bufsize, char *buffer, unsigned flags)
Definition: iobuf_init.c:19
unsigned iobuf_bufsize
Definition: iobuf_init.c:8
int iobuf_timeout(iobuf *io, int poll_out)
Definition: iobuf_timeout.c:6
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h:49
unsigned offset
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h:61
int fd
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h:51
int errnum
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h:67
unsigned bufsize
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h:55
unsigned buflen
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h:57
unsigned bufstart
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h:59
unsigned flags
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h:65
char * buffer
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h:53
unsigned timeout
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/iobuf_common.h:63
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/str.h:31