add make file, header, and extra code to deque
[model-checker-benchmarks.git] / chase-lev-deque / deque.h
1 #ifndef DEQUE_H
2 #define DEQUE_H
3
4 typedef struct {
5         atomic_size_t size;
6         atomic_int buffer[];
7 } Array;
8
9 typedef struct {
10         atomic_size_t top, bottom;
11         atomic_uintptr_t array; /* Atomic(Array *) */
12 } Deque;
13
14 Deque * create();
15 int take(Deque *q);
16 void resize(Deque *q);
17 void push(Deque *q, int x);
18
19 #define EMPTY 0xffffffff
20 #define ABORT 0xfffffffe
21
22 #endif