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