From d6d91f0d9dbdfda12f7f1ccc132544a9ef940bde Mon Sep 17 00:00:00 2001 From: Uros Majstorovic Date: Wed, 26 Feb 2020 02:49:09 +0100 Subject: msgq size functions --- code/esp32/components/eos/include/msgq.h | 2 ++ code/esp32/components/eos/msgq.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/code/esp32/components/eos/include/msgq.h b/code/esp32/components/eos/include/msgq.h index f5d5a31..f4a493e 100644 --- a/code/esp32/components/eos/include/msgq.h +++ b/code/esp32/components/eos/include/msgq.h @@ -17,6 +17,7 @@ typedef struct EOSMsgQ { void eos_msgq_init(EOSMsgQ *msgq, EOSMsgItem *array, uint8_t size); int eos_msgq_push(EOSMsgQ *msgq, unsigned char type, unsigned char *buffer, uint16_t len, uint8_t flags); void eos_msgq_pop(EOSMsgQ *msgq, unsigned char *type, unsigned char **buffer, uint16_t *len, uint8_t *flags); +uint8_t eos_msgq_size(EOSMsgQ *msgq); typedef struct EOSBufQ { uint8_t idx_r; @@ -28,3 +29,4 @@ typedef struct EOSBufQ { void eos_bufq_init(EOSBufQ *bufq, unsigned char **array, uint8_t size); int eos_bufq_push(EOSBufQ *bufq, unsigned char *buffer); unsigned char *eos_bufq_pop(EOSBufQ *bufq); +uint8_t eos_bufq_size(EOSBufQ *bufq); \ No newline at end of file diff --git a/code/esp32/components/eos/msgq.c b/code/esp32/components/eos/msgq.c index 22430b4..5a0bb4a 100644 --- a/code/esp32/components/eos/msgq.c +++ b/code/esp32/components/eos/msgq.c @@ -40,6 +40,10 @@ void eos_msgq_pop(EOSMsgQ *msgq, unsigned char *type, unsigned char **buffer, ui } } +uint8_t eos_msgq_size(EOSMsgQ *msgq) { + return (uint8_t)(msgq->idx_w - msgq->idx_r); +} + void eos_bufq_init(EOSBufQ *bufq, unsigned char **array, uint8_t size) { bufq->idx_r = 0; bufq->idx_w = 0; @@ -59,3 +63,7 @@ unsigned char *eos_bufq_pop(EOSBufQ *bufq) { return bufq->array[IDX_MASK(bufq->idx_r++, bufq->size)]; } + +uint8_t eos_bufq_size(EOSBufQ *bufq) { + return (uint8_t)(bufq->idx_w - bufq->idx_r); +} -- cgit v1.2.3