Remove C/C++11 header files that we don't really use
[satcheck.git] / test / ms-queue-freelist.h
1 #define MAX_NODES                       0xf
2
3 typedef unsigned long long pointer;
4 typedef void * pointer_t;
5
6 #define MAKE_POINTER(ptr, count)        ((((pointer)count) << 32) | ptr)
7 #define PTR_MASK 0xffffffffLL
8 #define COUNT_MASK (0xffffffffLL << 32)
9
10 static inline unsigned int get_count(pointer p) { return (p & COUNT_MASK) >> 32; }
11 static inline unsigned int get_ptr(pointer p) { return p & PTR_MASK; }
12
13 typedef struct node {
14         unsigned int value;
15         pointer_t next;
16 } node_t;
17
18 typedef struct {
19         pointer_t head;
20         pointer_t tail;
21         node_t nodes[MAX_NODES + 1];
22 } queue_t;
23
24 void init_queue(queue_t *q, int num_threads);
25 void enqueue(queue_t *q, unsigned int val);
26 bool dequeue(queue_t *q, unsigned int *retVal);
27 int get_thread_num();