]> rtime.felk.cvut.cz Git - frescor/fosa.git/commitdiff
Fosa for rtlinux already compiles, however some functions are still missed
authorbalbastrep <balbastrep@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Wed, 16 May 2007 11:46:31 +0000 (11:46 +0000)
committerbalbastrep <balbastrep@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Wed, 16 May 2007 11:46:31 +0000 (11:46 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fosa/trunk@408 35b4ef3e-fd22-0410-ab77-dab3279adceb

include/fosa_opaque_types.h
src_rtlinux/fosa_clocks_and_timers.c
src_rtlinux/fosa_mutexes_and_condvars.c
src_rtlinux/fosa_threads_and_signals.c

index 63e4eafd454986ddb7f83ee06195b086fb0e2493..68b48d86b8f0d754332d9a38ad5cc635035d3e8d 100644 (file)
@@ -72,6 +72,9 @@
 #include <signal.h>
 #include <time.h>
 
+#ifdef RT_LINUX
+#include <rtl_timer.h>
+#endif
 
 #define    FOSA_CLOCK_ID_T_OPAQUE    clockid_t
 #define    FOSA_SYSTEM_CLOCK_OPAQUE  CLOCK_REALTIME
index 6e0dfe007b780b835a0e0003d43da69cebd28d97..49d8315f7ba5b4adab891f042c81154e2ee8037e 100644 (file)
@@ -65,7 +65,7 @@
  *************************/
 
 int fosa_clock_get_time(fosa_clock_id_t clockid, 
-                        struct timespec current_time){ 
+                        struct timespec *current_time){ 
        return clock_gettime(clockid, current_time);
 }
 
@@ -87,7 +87,8 @@ int fosa_timer_create(fosa_clock_id_t clockid,
      
      event.sigev_notify     = SIGEV_SIGNAL;
      event.sigev_signo      = signal;
-     event.sigval.sival_ptr = info;
+     /* missed */
+    /* event.sigval.sival_ptr = info; */
 
      return timer_create(clockid, &event, timerid);
 }
index 9ba813b7967c6f2ee6883082d361d0f920e59015..d11e5afee4d691675d25b316a8860d2602440d89 100644 (file)
@@ -70,9 +70,9 @@
 
 
 int fosa_mutex_init(frsh_mutex_t *mutex, int prioceiling){
-     pthread_mutexattr_t *attr;
-     *attr->prioceiling=prioceiling;
-     return pthread_mutex_init(mutex, attr);
+     pthread_mutexattr_t attr;
+     attr.prioceiling=prioceiling;
+     return pthread_mutex_init(mutex, &attr);
 }
 
 int fosa_mutex_destroy(frsh_mutex_t *mutex){
@@ -106,7 +106,7 @@ int fosa_mutex_unlock(frsh_mutex_t *mutex){
  *********************/
 
 int fosa_cond_init(fosa_cond_t *cond){
-     return pthread_cond_init(pthread_cond_t *cond, NULL);
+     return pthread_cond_init(cond, NULL);
 }
 
 int fosa_cond_destroy(fosa_cond_t *cond){
@@ -128,6 +128,6 @@ int fosa_cond_wait(fosa_cond_t *cond, frsh_mutex_t *mutex){
 int fosa_cond_timedwait(fosa_cond_t *cond, 
                         frsh_mutex_t *mutex, 
                         const struct timespec abstime){
-     return pthread_cond_timedwait(cond, mutex, abstime);
+     return pthread_cond_timedwait(cond, mutex, &abstime);
 }
 
index d542b8a04489dd767365b60b9503644da2d2e606..e7f901c51a687cf459715c606c86f871de604d30 100644 (file)
@@ -57,7 +57,7 @@
 // FOSA(Frescor Operating System Adaptation layer)
 //================================================
 
-
+#include <fosa.h>
 
 /*************************
  * Thread identification
@@ -94,7 +94,8 @@ int fosa_thread_create (frsh_thread_id_t *tid, const frsh_thread_attr_t *attr,
 int fosa_thread_set_specific_data (int key, frsh_thread_id_t tid, 
                                            const void * value){
      if ((0<key) && (key<FOSA_MAX_KEYS-1)){
-          pthread_setspecific_for(key, tid, value);
+          // MISSED
+          //pthread_setspecific_for(key, tid, value);
           return 0;
      }
      return EINVAL;
@@ -131,10 +132,11 @@ int fosa_get_priority_min(){
 }
 
 int fosa_thread_attr_set_prio(frsh_thread_attr_t *attr, int prio) {
-     if ((ched_get_priority_min(0)<=prio) || (prio<=sched_get_priority_min(0))){
+       // MISSED
+     /*if ((ched_get_priority_min(0)<=prio) || (prio<=sched_get_priority_min(0))){
           attr->sched_param.sched_priority = prio;
           return 0;
-     }
+     }*/
      return EINVAL;
 }
 
@@ -173,27 +175,28 @@ int fosa_thread_get_prio (frsh_thread_id_t tid, int *prio){
 
 int fosa_set_accepted_signals(frsh_signal_t set[], int size) {
      int x;
-     rtl_sigset_t bitset;
+     // MISSED
+     /*rtl_sigset_t bitset;
 
      rtl_sigfillset(bitset); // By default all signals will be blocked.
      for (x=0; x<size; x++)
           rtl_sigdelset(bitset, set[x]); // Unblock the "set" of signals.
-     
-     return pthread_sigmask(SIG_SETMASK, bitmask, NULL);
+     */
+     return 0;//pthread_sigmask(SIG_SETMASK, bitmask, NULL);
 }
 
 
 int fosa_signal_queue (frsh_signal_t signal, frsh_signal_info_t info,
                        frsh_thread_id_t receiver){
-     union sigval value;
+/*     union sigval value;
      
      value.sival_ptr=info;
-     return sigqueue(0, signal, value);
+     return sigqueue(0, signal, value);*/
 }
 
 int fosa_signal_wait (frsh_signal_t set[], int size, frsh_signal_t *signal_received, 
                                     frsh_signal_info_t *info){
-     int x;
+/*     int x;
      rtl_sigset_t bitset;
      siginfo_t __info;
      
@@ -203,13 +206,13 @@ int fosa_signal_wait (frsh_signal_t set[], int size, frsh_signal_t *signal_recei
      sigwaitinfo(&bitset, &__info);
      *signal_received=__info.si_signo;
      *info = __info.si_value.sival_ptr;
-
+*/
 }
 
 int fosa_signal_timedwait (frsh_signal_t set[], int size, frsh_signal_t *signal_received, 
                                          frsh_signal_info_t *info, const struct timespec *timeout){
      
-     
+  /*   
      int x;
      rtl_sigset_t bitset;
      siginfo_t __info;
@@ -223,7 +226,7 @@ int fosa_signal_timedwait (frsh_signal_t set[], int size, frsh_signal_t *signal_
      sigwaitinfo(&bitset, &__info);
      *signal_received=__info.si_signo;
      *info = __info.si_value.sival_ptr;
-       ??????
+       ??????*/
 }