e03490faae42d876a7c0c7e0d6942905a8c0ebb5
[IRC.git] / Robust / src / Runtime / bamboo / pmc_queue.h
1 #ifndef PMC_QUEUE_H
2 #define PMC_QUEUE_H
3 #include "multicore.h"
4 #include <tmc/spin.h>
5
6 #define NUM_PMC_QUEUE_OBJECTS 500000
7
8 struct pmc_queue {
9   volatile void * objects[NUM_PMC_QUEUE_OBJECTS];
10   volatile int headindex;
11   volatile int tailindex;
12   tmc_spin_mutex_t lock;
13 };
14
15 void * pmc_dequeue(struct pmc_queue *queue);
16 void pmc_enqueue(struct pmc_queue* queue, void *ptr);
17 bool pmc_isEmpty(struct pmc_queue *queue);
18 void pmc_queueinit(struct pmc_queue *queue);
19 #endif