summaryrefslogtreecommitdiff
path: root/code
diff options
context:
space:
mode:
Diffstat (limited to 'code')
-rw-r--r--code/esp32/components/eos/include/msgq.h2
-rw-r--r--code/esp32/components/eos/msgq.c8
2 files changed, 10 insertions, 0 deletions
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);
+}