comparison VSs.c @ 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
comparison
equal deleted inserted replaced
17:df00a0c69d9a 18:f5259b2f160f
251 semanticEnv->fnSingletons[i].endInstrAddr = NULL; 251 semanticEnv->fnSingletons[i].endInstrAddr = NULL;
252 semanticEnv->fnSingletons[i].hasBeenStarted = FALSE; 252 semanticEnv->fnSingletons[i].hasBeenStarted = FALSE;
253 semanticEnv->fnSingletons[i].hasFinished = FALSE; 253 semanticEnv->fnSingletons[i].hasFinished = FALSE;
254 semanticEnv->fnSingletons[i].waitQ = makeVMSQ(); 254 semanticEnv->fnSingletons[i].waitQ = makeVMSQ();
255 semanticEnv->transactionStrucs[i].waitingVPQ = makeVMSQ(); 255 semanticEnv->transactionStrucs[i].waitingVPQ = makeVMSQ();
256 semanticEnv->criticalSection[i].isOccupied = FALSE;
257 semanticEnv->criticalSection[i].waitQ = makeVMSQ();
258 #ifdef HOLISTIC__TURN_ON_PERF_COUNTERS
259 semanticEnv->criticalSection[i].previous.vp = 0;
260 semanticEnv->criticalSection[i].previous.task = 0;
261 #endif
256 } 262 }
257 263
258 semanticEnv->numLiveExtraTaskSlvs = 0; //must be last 264 semanticEnv->numLiveExtraTaskSlvs = 0; //must be last
259 semanticEnv->numLiveThreadSlvs = 1; //must be last, counts the seed 265 semanticEnv->numLiveThreadSlvs = 1; //must be last, counts the seed
260 266
541 reqData.callingSlv = animSlv; 547 reqData.callingSlv = animSlv;
542 548
543 VMS_WL__send_sem_request( &reqData, animSlv ); 549 VMS_WL__send_sem_request( &reqData, animSlv );
544 } 550 }
545 551
546 552 void
553 VSs__taskwait_on(SlaveVP *animSlv,void* ptr){
554 VSsSemReq reqData;
555
556 reqData.reqType = taskwait_on;
557 reqData.callingSlv = animSlv;
558
559 reqData.args = ptr;
560
561 VMS_WL__send_sem_request( &reqData, animSlv );
562 }
563
564 void
565 VSs__start_critical(SlaveVP *animSlv,int32 name){
566 VSsSemReq reqData;
567
568 reqData.reqType = critical_start;
569 reqData.callingSlv = animSlv;
570
571 reqData.criticalID = name;
572
573 VMS_WL__send_sem_request( &reqData, animSlv );
574 }
575
576 void
577 VSs__end_critical(SlaveVP *animSlv,int32 name){
578 VSsSemReq reqData;
579
580 reqData.reqType = critical_end;
581 reqData.callingSlv = animSlv;
582
583 reqData.criticalID = name;
584
585 VMS_WL__send_sem_request( &reqData, animSlv );
586 }
547 587
548 //========================== send and receive ============================ 588 //========================== send and receive ============================
549 // 589 //
550 590
551 int32 * 591 int32 *