385db65ad289b506e8cd754543acdd998cc11f96
[model-checker-benchmarks.git] / mcs-queue / my_queue.h
1 #define TRUE                            1
2 #define FALSE                           0
3 #define NULL                            0
4
5 #define MAX_NODES                       0xff
6 #define MAX_SERIAL                      10000
7
8 #define MAKE_LONG(lo, hi)               ((hi)<<16)+(lo)
9
10 typedef union pointer {
11         struct {
12                 volatile unsigned short count;
13                 volatile unsigned short ptr;
14         } sep;
15         volatile unsigned long con;
16 }pointer_t;
17
18 typedef struct node {
19         unsigned value;
20         pointer_t next;
21         unsigned foo[30];
22 } node_t;
23
24 typedef struct private {
25         unsigned node;
26         unsigned value;
27         unsigned serial[MAX_SERIAL];
28 } private_t;
29
30 typedef struct shared_mem {
31         pointer_t head;
32         unsigned foo1[31];
33         pointer_t tail;
34         unsigned foo2[31];
35         node_t nodes[MAX_NODES+1];
36         unsigned serial;
37 } shared_mem_t;