more changes
[IRC.git] / Robust / src / Runtime / oooJava / WaitingQueue.h
1 /*
2  * waitingQueue.h
3  *
4  *  Created on: Sep 1, 2010
5  *      Author: stephey
6  */
7 #ifndef WAITINGQUEUE_H_
8 #define WAITINGQUEUE_H_
9
10 #define NUMITEMS_WQ 20
11
12 /* print header */
13 typedef struct TraverserData_WQ {
14   void * resumePtr;
15   int effectType;
16   int traverserID;
17 } TraverserResumeDataFromWaitingQ;
18
19 typedef struct BinVector_wq {
20   struct TraverserData_WQ array[NUMITEMS_WQ];
21   struct BinVector_wq * next;
22   int headIndex;
23   int tailIndex;
24 } WaitingQueueBinVector;
25
26
27 typedef struct BinElement_wq {
28   struct BinVector_wq * head;
29   struct BinVector_wq * tail;
30   int size;
31 } WaitingQueueBin;
32
33 void putIntoWaitingQueue(int allocSiteID, WaitingQueueBin * queue, void * resumePtr, int traverserID);
34 int isEmptyForWaitingQ(WaitingQueueBin * queue, int allocSiteID);
35 WaitingQueueBin * mallocWaitingQueue(int size);
36 WaitingQueueBinVector * returnWaitingQueueBinVectorToFreePool(struct BinVector_wq *ptr);
37 int removeFromWaitingQueue(WaitingQueueBin * queue, int allocSiteID, int TraverserID);
38 WaitingQueueBinVector * mallocNewWaitingQueueBinVector();
39 WaitingQueueBinVector * getUsableWaitingQueueBinVector();
40
41 #endif