]> rtime.felk.cvut.cz Git - frescor/fosa.git/commitdiff
git-svn-id: http://www.frescor.org/private/svn/frescor/fosa/trunk@472 35b4ef3e-fd22...
authoriripoll <iripoll@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Thu, 14 Jun 2007 09:21:08 +0000 (09:21 +0000)
committeriripoll <iripoll@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Thu, 14 Jun 2007 09:21:08 +0000 (09:21 +0000)
src_rtlinux/fosa_app_def_sched.c

index 01c2d38333f72e337636081975630e4dc034359f..8dcd5d05d04c260cb0eecf9d3efca716d056d7bc 100644 (file)
@@ -189,8 +189,8 @@ int fosa_adsactions_add_reject(fosa_ads_actions_t *sched_actions,
 int fosa_adsactions_add_activate(fosa_ads_actions_t *sched_actions,
                                  frsh_thread_id_t thread,
                                  fosa_ads_urgency_t urgency){
-     RTL_PRIO(&thread)=set_urgency(urgency, (&thread));
-     return posix_appsched_actions_addactivate(sched_actions, thread);
+    RTL_PRIO(thread)=set_urgency(thread, urgency);
+    return posix_appsched_actions_addactivate(sched_actions, thread);
 }
 
 int fosa_adsactions_add_suspend(fosa_ads_actions_t *sched_actions,
@@ -198,19 +198,24 @@ int fosa_adsactions_add_suspend(fosa_ads_actions_t *sched_actions,
      return posix_appsched_actions_addsuspend (sched_actions, thread);
 }
 
-
+extern timer_t fosa_timeout_timer; // defined in rtl_fosa.c
 int fosa_adsactions_add_timeout(fosa_ads_actions_t *sched_actions,
                                 fosa_clock_id_t clock_id,
                                 const struct timespec *at_time){
      struct sigevent signal;
+     struct itimerspec at_itimer= (struct itimerspec)
+        {.it_interval=(struct timespec){0,0},
+         .it_value=*at_time};
+
      if (fosa_timeout_timer)
           return EINVAL;
 
      signal.sigev_signo=0;
      signal.sigev_notify=SIGEV_NONE;
 
-     timer_create(clock_id, signal, &fosa_timeout_timer);
-     timer_settime(fosa_timeout_timer, int flags, at_time, 0);
+     timer_create(clock_id, &signal, &fosa_timeout_timer);
+     timer_settime(fosa_timeout_timer, 0, &at_itimer, 0);
+     return 0;
 }
 
 
@@ -219,6 +224,10 @@ int fosa_adsactions_add_thread_notification(fosa_ads_actions_t *sched_actions,
                                             fosa_clock_id_t clock_id,
                                             const struct timespec *at_time){
      struct sigevent signal;
+     struct itimerspec at_itimer= (struct itimerspec)
+        {.it_interval=(struct timespec){0,0},
+         .it_value=*at_time};
+     
      if (fosa_timeout_timer)
           return EINVAL;
 
@@ -226,20 +235,23 @@ int fosa_adsactions_add_thread_notification(fosa_ads_actions_t *sched_actions,
      signal.sigev_signo=(int)thread;
      signal.sigev_notify=SIGEV_NONE;
 
-     timer_create(clock_id, signal, &fosa_timeout_timer);
-     timer_settime(fosa_timeout_timer, int flags, at_time, 0);
+     timer_create(clock_id, &signal, &fosa_timeout_timer);
+     timer_settime(fosa_timeout_timer, 0, &at_itimer, 0);
+     return 0;
 }
+extern rtl_sigset_t fosa_scheduler_signal_bitmap; // as declared in rtl_fosa.c
 
 int fosa_ads_set_handled_signal_set(frsh_signal_t set[], int size){
      int x;
 
      rtl_sigemptyset(&fosa_scheduler_signal_bitmap);
      for (x=0; x<size; x++)
-          rtl_sigaddset(&fosa_scheduler_signal_bitmap, set[x]); 
+        rtl_sigaddset(&fosa_scheduler_signal_bitmap, set[x]); 
+     return 0;
 }
 
 
 int fosa_ads_invoke_withdata (const void *msg, size_t msg_size, 
                               void *reply, size_t *reply_size){
-       posix_appsched_invoke_withdata(msg, msg_size, reply, reply_size);
+    return posix_appsched_invoke_withdata((void *)msg, msg_size, reply, reply_size);
 }