summaryrefslogtreecommitdiff
path: root/recipes-bsp/esp32spid/src/msgq.h
blob: 665be32d84f6c18b23a3c9328b2fc53036a1ace2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdint.h>

#define MSGQ_OK		0
#define MSGQ_ERR	-1
#define MSGQ_ERR_FULL	-10

typedef struct MSGQueue {
    uint16_t idx_r;
    uint16_t idx_w;
    uint16_t size;
    unsigned char **array;
    pthread_mutex_t mutex;
    pthread_cond_t cond;
} MSGQueue;

int msgq_init(MSGQueue *msgq, unsigned char **array, uint16_t size);
int msgq_push(MSGQueue *msgq, unsigned char *buffer);
unsigned char *msgq_pop(MSGQueue *msgq);
uint16_t msgq_len(MSGQueue *msgq);