Add queue implementation from experiments area.

This commit is contained in:
Russell Gallop
2011-08-11 15:39:49 +01:00
parent d4e1bc3906
commit ff035c8b08
2 changed files with 72 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
#ifndef QUEUE_H
#define QUEUE_H
#include <stdint.h>
#include <xccompat.h>
typedef struct queue {
intptr_t data;
int rdptr; // Using absolute indices which count reads and writes so this needs to be considered when accessing.
int wrptr;
int size;
int mask;
} queue;
void init_queue(REFERENCE_PARAM(queue, q), int arr[], int size);
void enqueue(REFERENCE_PARAM(queue, q), int value);
int dequeue(REFERENCE_PARAM(queue, q));
int isempty(REFERENCE_PARAM(queue, q));
int isfull(REFERENCE_PARAM(queue, q));
int items(REFERENCE_PARAM(queue, q));
int space(REFERENCE_PARAM(queue, q));
void dump(REFERENCE_PARAM(queue, q));
#endif // QUEUE_H