Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VSs_impls > VSs__MC_shared_impl
diff VSs.h @ 21:feea343d202f
add support for more OmpSs features
| author | Nina Engelhardt <nengel@mailbox.tu-berlin.de> |
|---|---|
| date | Mon, 29 Oct 2012 16:57:56 +0100 |
| parents | a7ca8f45c1c4 |
| children | b787a5234406 |
line diff
1.1 --- a/VSs.h Tue Sep 25 16:12:40 2012 +0200 1.2 +++ b/VSs.h Mon Oct 29 16:57:56 2012 +0100 1.3 @@ -92,6 +92,7 @@ 1.4 bool32 isEnded; 1.5 #ifdef HOLISTIC__TURN_ON_OBSERVE_UCC 1.6 Unit parentUnit; 1.7 + Unit firstOfTask; 1.8 #endif 1.9 } 1.10 VSsTaskStub; 1.11 @@ -102,6 +103,7 @@ 1.12 VSsTaskStub *taskStub; 1.13 int32 argNum; 1.14 int32 isReader; 1.15 + bool32 isSuspended; 1.16 } 1.17 VSsTaskStubCarrier; 1.18 1.19 @@ -131,6 +133,16 @@ 1.20 } 1.21 VSsSingleton; 1.22 1.23 +typedef struct 1.24 + { 1.25 + int32 isOccupied; 1.26 + PrivQueueStruc *waitQ; 1.27 +#ifdef HOLISTIC__TURN_ON_OBSERVE_UCC 1.28 + Unit previous; 1.29 +#endif 1.30 + } 1.31 +VSsCritical; 1.32 + 1.33 enum VSsReqType 1.34 { 1.35 submit_task = 1, 1.36 @@ -145,6 +157,9 @@ 1.37 receive_from_to, 1.38 //=============================== 1.39 taskwait, 1.40 + taskwait_on, 1.41 + critical_start, 1.42 + critical_end, 1.43 malloc_req, 1.44 free_req, 1.45 singleton_fn_start, 1.46 @@ -186,6 +201,7 @@ 1.47 void *dataForFn; 1.48 1.49 int32 transID; 1.50 + int32 criticalID; 1.51 } 1.52 /* VSsSemReq */; 1.53 1.54 @@ -206,6 +222,7 @@ 1.55 //fix limit on num with dynArray 1.56 VSsSingleton fnSingletons[NUM_STRUCS_IN_SEM_ENV]; 1.57 VSsTrans transactionStrucs[NUM_STRUCS_IN_SEM_ENV]; 1.58 + VSsCritical criticalSection[NUM_STRUCS_IN_SEM_ENV]; 1.59 1.60 bool32 *coreIsDone; 1.61 int32 numCoresDone; 1.62 @@ -319,6 +336,14 @@ 1.63 void 1.64 VSs__taskwait(SlaveVP *animSlv); 1.65 1.66 +void 1.67 +VSs__taskwait_on(SlaveVP *animSlv,void* ptr); 1.68 + 1.69 +void 1.70 +VSs__start_critical(SlaveVP *animSlv,int32 name); 1.71 + 1.72 +void 1.73 +VSs__end_critical(SlaveVP *animSlv,int32 name); 1.74 1.75 int32 * 1.76 VSs__give_self_taskID( SlaveVP *animSlv );
