mlp system changes
[IRC.git] / Robust / src / Runtime / mlp_runtime.h
1 #ifndef __MLP_RUNTIME__
2 #define __MLP_RUNTIME__
3
4
5 #include <pthread.h>
6 #include "Queue.h"
7 #include "psemaphore.h"
8
9 /*
10 // forward delcarations
11 struct SESErecord_t;
12
13
14 typedef struct SESErecord_t {  
15   // the identifier for the class of sese's that
16   // are instances of one particular static code block
17   int classID;
18
19   // This field is a structure of in-set and out-set
20   // objects with the following layout:
21   // [INTPTR numPtrs][void* next][ptr0][ptr1]...
22   void* inSetOutSetObjs;
23
24   // This field is a structure of primitives for
25   // the in-set and out-set
26   void* inSetOutSetPrims;
27
28   // the lock guards the following data SESE's
29   // use to coordinate with one another
30   pthread_mutex_t lock;
31   struct Queue*   forwardList;
32   int             doneExecuting;
33
34 } SESErecord;
35 */
36
37 /*
38 typedef struct SESEvarSrc_t {
39   void* seseRecord;
40   int         offset;
41 } SESEvarSrc;
42 */
43
44 /*
45 // simple mechanical allocation and deallocation
46 // of SESE records
47 SESErecord* mlpCreateSESErecord( int   classID,
48                                  void* inSetOutSetObjs,
49                                  void* inSetOutSetPrims
50                                );
51
52 void mlpDestroySESErecord( SESErecord* sese );
53 */
54
55
56 // main library functions
57 void mlpInit();
58 void mlpIssue( void* seseRecord );
59 void mlpStall( void* seseRecord );
60
61
62 #endif /* __MLP_RUNTIME__ */