summaryrefslogtreecommitdiff
path: root/yocto/esp32d/msgq.h
blob: 32b20d07d54d82252cbaba59647f08eb24924844 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdint.h>

#define MSGQ_OK         0
#define MSGQ_ERR        -1

#define MSGQ_ERR_SIZE   -10
#define MSGQ_ERR_FULL   -11
#define MSGQ_ERR_EMPTY  -12

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);