Compare commits

...

3 commits

3 changed files with 20 additions and 3 deletions

View file

@ -10,6 +10,7 @@ ifneq ($(DEBUG), 1)
CFLAGS += -fno-exceptions -fno-asynchronous-unwind-tables -fno-ident
CFLAGS += -fno-unwind-tables -fno-stack-protector -fno-plt -fno-pic
CFLAGS += -O3 -std=c99 -march=native -mtune=native -fomit-frame-pointer
CFLAGS += -fshort-enums
else
CFLAGS += -g -O0 -std=c99 -march=native -mtune=native
CFLAGS += -DDEBUG

View file

@ -25,8 +25,24 @@ struct RingBuf {
void *buffer_end; /** The end of the buffer */
} __attribute__((packed));
enum WriteResult { Full, WriteOk }; /** Result of a write */
enum ReadResult { Empty, ReadOk }; /** Result of a read */
/*
* Considerations: One hot encoding for the enum values
* (8 bit each with -fshort-enums)
*/
/** Result of a write */
enum WriteResult {
WriteOk, /** The write was successful */
Full, /** The buffer is full */
InsufficientSpace /** There is not enough space to write */
};
/** Result of a read */
enum ReadResult {
Empty, /** The buffer is empty */
ReadOk, /** The read was successful */
InsufficientData /** There is not enough data to read */
};
/**
* @brief Initialize the ring buffer