X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker-benchmarks.git;a=blobdiff_plain;f=mcs-queue%2Fmy_queue.h;h=80e695829d9954b6f4a81860ca26d6c48e75a5d4;hp=34c9cbd10537a13a79359bf94606a3fc95498209;hb=e4a48c7b09fa1ba3757aa6eb7e3df2513549b6b6;hpb=404f3f4a8d55aa8c511c049b732887df67a59468;ds=sidebyside diff --git a/mcs-queue/my_queue.h b/mcs-queue/my_queue.h index 34c9cbd..80e6958 100644 --- a/mcs-queue/my_queue.h +++ b/mcs-queue/my_queue.h @@ -1,6 +1,5 @@ #define TRUE 1 #define FALSE 0 -#define NULL 0 #define MAX_NODES 0xff #define MAX_SERIAL 10000 @@ -8,31 +7,35 @@ #define MAKE_LONG(lo, hi) ((hi)<<16)+(lo) typedef union pointer { - struct { - volatile unsigned short count; - volatile unsigned short ptr; - } sep; - volatile unsigned long con; + struct { + volatile unsigned short count; + volatile unsigned short ptr; + } sep; + volatile unsigned long con; }pointer_t; typedef struct node { - unsigned value; - pointer_t next; - unsigned foo[30]; + unsigned value; + pointer_t next; + unsigned foo[30]; } node_t; typedef struct private { - unsigned node; - unsigned value; - unsigned serial[MAX_SERIAL]; + unsigned node; + unsigned value; + unsigned serial[MAX_SERIAL]; } private_t; typedef struct shared_mem { - pointer_t head; - unsigned foo1[31]; - pointer_t tail; - unsigned foo2[31]; - node_t nodes[MAX_NODES+1]; - unsigned serial; + pointer_t head; + unsigned foo1[31]; + pointer_t tail; + unsigned foo2[31]; + node_t nodes[MAX_NODES+1]; + unsigned serial; } shared_mem_t; +void init_private(); +void init_memory(); +void init_queue(); +unsigned dequeue();