diff options
Diffstat (limited to 'source/q_fifo.h')
-rw-r--r-- | source/q_fifo.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/source/q_fifo.h b/source/q_fifo.h index 9d70bce..3bb5124 100644 --- a/source/q_fifo.h +++ b/source/q_fifo.h @@ -28,21 +28,21 @@ typedef struct { size_t ax, ay, bs; } fifo_t; -static inline void *FIFO_Reserve( fifo_t *fifo, size_t *reserved ) { +static inline void *FIFO_Reserve( fifo_t *fifo, size_t *len ) { size_t tail; if( fifo->bs ) { - *reserved = fifo->ax - fifo->bs; + *len = fifo->ax - fifo->bs; return fifo->data + fifo->bs; } tail = fifo->size - fifo->ay; - if( fifo->ax < tail ) { - *reserved = tail; + if( tail ) { + *len = tail; return fifo->data + fifo->ay; } - *reserved = fifo->ax; + *len = fifo->ax; return fifo->data; } @@ -55,7 +55,7 @@ static inline void FIFO_Commit( fifo_t *fifo, size_t len ) { } tail = fifo->size - fifo->ay; - if( fifo->ax < tail ) { + if( tail ) { fifo->ay += len; return; } @@ -112,3 +112,5 @@ static inline qboolean FIFO_TryWrite( fifo_t *fifo, void *buffer, size_t len ) { return qtrue; } +qboolean FIFO_ReadMessage( fifo_t *fifo, size_t msglen ); + |