#include #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 */