summaryrefslogtreecommitdiff
path: root/shared/queue.h
blob: 8a6655ca27a3de3ec1ae307888f486c14b837e83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once

#include <pthread.h>
#include <stdint.h>
#include <stdbool.h>

#define QUEUE_SIZE 256
#define PACKET_MAX_SIZE 2048

typedef struct {
    uint8_t data[QUEUE_SIZE][PACKET_MAX_SIZE];
    int size[QUEUE_SIZE];
    int head;
    int tail;
    pthread_mutex_t lock;
} PacketQueue;

void QueueInit(PacketQueue *q);
void QueuePush(PacketQueue *q, void *data, int size);
bool QueuePop(PacketQueue *q, void *data, int *size);