]> rtime.felk.cvut.cz Git - frescor/fosa.git/commitdiff
FOSA-PaRTiKle: changes in allocated signals for longjumps
authorbrocalv <brocalv@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Tue, 4 Mar 2008 16:30:13 +0000 (16:30 +0000)
committerbrocalv <brocalv@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Tue, 4 Mar 2008 16:30:13 +0000 (16:30 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fosa/trunk@1037 35b4ef3e-fd22-0410-ab77-dab3279adceb

include/fosa_opaque_types.h
src_partikle/fosa_clocks_and_timers.c
src_partikle/fosa_long_jump.c

index d6146c7de2ac67735cf9498a929180161a2a7af1..5d8c5035bdf8c8c9a6936e532e582a930b1fdffa 100644 (file)
@@ -372,8 +372,10 @@ enum _fosa_clocks_e {
 };
 
 enum _fosa_signal_limits_e {
-  FOSA_SIGNAL_MIN = SIGRTMIN,
-  FOSA_SIGNAL_MAX = SIGRTMIN + 0,
+  LONGJMP_NSIG = 3,
+  LONGJMP_FIRSTSIG = SIGRTMAX - LONGJMP_NSIG + 1,
+  FOSA_SIGNAL_MAX = LONGJMP_FIRSTSIG - 1,
+  FOSA_SIGNAL_MIN = FOSA_SIGNAL_MAX,
 };
 
 enum _fosa_errors_e {
index 99f795c14626aec9305634e9daf5e3d7ede409ff..f0284621f6875a06f7ef0f6029f6d6fbdec410fe 100644 (file)
@@ -82,7 +82,6 @@ int fosa_thread_get_cputime_clock(fosa_thread_id_t tid, fosa_clock_id_t *clockid
 /*************************
  * Timing: Timers
  *************************/
-// #define FRSH_DEADLINE_NEWJOB_TIMEOUT   0x00050000
 void void_handler (int signo) {};
 int fosa_timer_create
     (fosa_clock_id_t clockid, fosa_signal_t signal, fosa_signal_info_t info,
@@ -104,13 +103,16 @@ int fosa_timer_create
        se.sigev_value.sival_ptr = info.sival_ptr;
 
        return timer_create (clockid, &se, timerid);
-/*
-       if ((info.sival_int & 0xFFFF0000) == FRSH_DEADLINE_NEWJOB_TIMEOUT)
-               printf ("\n\ndeadline %d timer created: info=0x%x, signal=%d ()\n\n", *timerid, info.sival_int, signal);
-*/
 }
 
 
+int fosa_timer_create_with_receiver
+    (fosa_clock_id_t clockid, fosa_signal_t signal, fosa_signal_info_t info,
+     fosa_timer_id_t *timerid, fosa_thread_id_t receiver)
+{
+  return fosa_timer_create (clockid, signal, info, timerid);
+}
+
 int fosa_timer_delete(fosa_timer_id_t timerid)
 {
        return timer_delete (timerid);
@@ -125,10 +127,6 @@ int fosa_timer_arm
        
        clock_gettime (CLOCK_REALTIME, &now);
        
-/*     
-       printf ("(0x%x): Arm timer (%d). abstime=%d, value={%ld,%ld}, now={%ld, %ld}\n",\
-               pthread_self (), timerid, abstime, value -> tv_sec, value -> tv_nsec, now.tv_sec, now.tv_nsec);
-*/
        struct itimerspec tvalue =
        {
                .it_value = (struct timespec) *value,
index becd66df4e63b88691dea1c8100d890f0bb19b05..3e502ce950d05c2dcbcc7bf7805eb6c0d5ad62a4 100644 (file)
@@ -72,7 +72,7 @@ enum {
 };
 
 int jmp_used_signals [LONGJMP_NSIG] = {[0 ... (LONGJMP_NSIG - 1)] = 0};
-pthread_mutex_t signal_pool_m = PTHREAD_MUTEX_INITIALIZER
+pthread_mutex_t signal_pool_m = PTHREAD_MUTEX_INITIALIZER;
 
 
 int fosa_long_jump_save_context
@@ -109,9 +109,10 @@ int fosa_long_jump_was_performed
 void jmp_handler (int signo, siginfo_t *info, void *context)
 {
   fosa_long_jump_context_t *jmp_info = (fosa_long_jump_context_t *) info -> si_value.sival_ptr;
-  sigset_t set;
 
 #ifdef CONFIG_LONGJUMP_FREE_SIGNALS
+  sigset_t set;
+
   // Restore the signal mask
   pthread_sigmask (SIG_SETMASK, &(context -> jmp_sigmask), NULL);