1 #ifndef __MLP_RUNTIME__
2 #define __MLP_RUNTIME__
7 #include "psemaphore.h"
10 // forward delcarations
14 typedef struct SESErecord_t {
15 // the identifier for the class of sese's that
16 // are instances of one particular static code block
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;
24 // This field is a structure of primitives for
25 // the in-set and out-set
26 void* inSetOutSetPrims;
28 // the lock guards the following data SESE's
29 // use to coordinate with one another
31 struct Queue* forwardList;
38 typedef struct SESEvarSrc_t {
45 // simple mechanical allocation and deallocation
47 SESErecord* mlpCreateSESErecord( int classID,
48 void* inSetOutSetObjs,
49 void* inSetOutSetPrims
52 void mlpDestroySESErecord( SESErecord* sese );
56 // main library functions
58 void mlpIssue( void* seseRecord );
59 void mlpStall( void* seseRecord );
62 #endif /* __MLP_RUNTIME__ */