add make file, header, and extra code to deque
[model-checker-benchmarks.git] / ms-queue / my_queue.h
index 4ce05b49af99184007088b45ef697601ce11c9b2..c92e420657c1847ec3575156be8e6a7b133e2dae 100644 (file)
@@ -11,25 +11,21 @@ typedef atomic_ullong pointer_t;
 
 static inline void set_count(pointer *p, unsigned int val) { *p = (*p & ~COUNT_MASK) | ((pointer)val << 32); }
 static inline void set_ptr(pointer *p, unsigned int val) { *p = (*p & ~PTR_MASK) | val; }
-static inline unsigned int get_count(pointer p) { return p & PTR_MASK; }
-static inline unsigned int get_ptr(pointer p) { return (p & COUNT_MASK) >> 32; }
+static inline unsigned int get_count(pointer p) { return (p & COUNT_MASK) >> 32; }
+static inline unsigned int get_ptr(pointer p) { return p & PTR_MASK; }
 
 typedef struct node {
        unsigned int value;
        pointer_t next;
 } node_t;
 
-typedef struct private {
-       unsigned int node;
-} private_t;
-
-typedef struct shared_mem {
+typedef struct {
        pointer_t head;
        pointer_t tail;
        node_t nodes[MAX_NODES + 1];
 } queue_t;
 
-void init_private(int pid);
-void init_queue(queue_t *q);
+void init_queue(queue_t *q, int num_threads);
 void enqueue(queue_t *q, unsigned int val);
 unsigned int dequeue(queue_t *q);
+int get_thread_num();