diff options
Diffstat (limited to 'src/cbuffer.h')
-rw-r--r-- | src/cbuffer.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/cbuffer.h b/src/cbuffer.h new file mode 100644 index 0000000..5fc2de0 --- /dev/null +++ b/src/cbuffer.h @@ -0,0 +1,22 @@ +#include <stdint.h> + +#ifndef __CBUFFER_H +#define __CBUFFER_H + +struct cbuffer { + uint8_t buffer[1 << 10]; + int read_index; + int write_index; +}; + +#define buffer_size(buf) (sizeof((buf)->buffer)) +#define buffer_used(buf) (((buf)->write_index - (buf)->read_index) & (buffer_size(buf) - 1)) +#define buffer_free(buf) (buffer_size(buf) - 1 - buffer_used(buf)) + +int buffered_write(int fd, struct cbuffer *buf); +int buffered_read(int fd, struct cbuffer *buf); + +#define DIR_REV(i) ((i == 1) ? 0 : 1) + +#endif /* ~__CBUFFER_H */ + |