Example #1
0
int main(){
  // here we get 2 contexts for foo with bg=0 and bg=1:
  // foo(0); bg = 1; foo(0);
  RETURN_CODE_TYPE r;
  PROCESS_ID_TYPE pi1, pi2;
  SEMAPHORE_ID_TYPE sem_id_local;
  PROCESS_ATTRIBUTE_TYPE p1, p2;
  LAP_Se_CreateSemaphore("my_mutex",1,1,0,&sem_id_local,&r);
  LAP_Se_GetSemaphoreId("my_mutex",&sem_id,&r);
  F59(p1.NAME, (T1 *)"proc1");
  /*p1.NAME = "proc1";*/
  p1.ENTRY_POINT = (void *) &P1;
  p1.BASE_PRIORITY = 10;
  p1.PERIOD = 600;
  p1.TIME_CAPACITY = 600;
  p2.NAME = "proc2";
  p2.ENTRY_POINT = (void *) &P2;
  p2.BASE_PRIORITY = 10;
  p2.PERIOD = 600;
  p2.TIME_CAPACITY = 600;
  LAP_Se_CreateProcess(&p1,&pi1,&r);
  LAP_Se_CreateProcess(&p2,&pi2,&r);
  LAP_Se_Start(pi1,&r);
  LAP_Se_Start(pi2,&r);
  LAP_Se_SetPartitionMode(NORMAL,&r);
  while(1) {
    g2 = g2 - 1;  // RACE!
  }
  return 0;
}
Example #2
0
void foo(int b) {
  RETURN_CODE_TYPE r;
  if(b) foo2();
  // if(b) LAP_Se_PeriodicWait(&r);
  PROCESS_ID_TYPE pid;
  LAP_Se_GetMyId(&pid, &r);
  LAP_Se_Start(pid, &r);
  // if(bg) LAP_Se_PeriodicWait(&r);
}
Example #3
0
int main(){
 RETURN_CODE_TYPE r;
 PROCESS_ID_TYPE pi1,pi2;
 PROCESS_ATTRIBUTE_TYPE p1,p2;
 p1.ENTRY_POINT = (void *) &P1;
 p1.BASE_PRIORITY = 10;
 LAP_Se_CreateProcess(&p1,&pi1,&r);
 LAP_Se_Start(pi1,&r);
 LAP_Se_SetPartitionMode(NORMAL,&r);
 return 0;
}
Example #4
0
int main(){
  RETURN_CODE_TYPE r;
  PROCESS_ID_TYPE pi1, pi2;
  SEMAPHORE_ID_TYPE sem_id_local;
  PROCESS_ATTRIBUTE_TYPE p1, p2;
  LAP_Se_CreateSemaphore("my_mutex",1,1,0,&sem_id_local,&r);
  LAP_Se_GetSemaphoreId("my_mutex",&sem_id,&r);
  p1.NAME = "proc1";
  p1.ENTRY_POINT = (void *) &P1;
  p1.BASE_PRIORITY = 10;
  p1.PERIOD = 600;
  p1.TIME_CAPACITY = 600;
  p2.NAME = "proc2";
  p2.ENTRY_POINT = (void *) &P2;
  p2.BASE_PRIORITY = 20;
  p2.PERIOD = 600;
  p2.TIME_CAPACITY = 600;
  LAP_Se_CreateProcess(&p1,&pi1,&r);
  LAP_Se_CreateProcess(&p2,&pi2,&r);
  LAP_Se_Start(pi1,&r);
  LAP_Se_Start(pi2,&r);
  LAP_Se_SetPartitionMode(NORMAL,&r);
  return 0;
}