]> rtime.felk.cvut.cz Git - frescor/fosa.git/commitdiff
rtlinux version of fosa_app_def_sched.c already compiles
authoriripoll <iripoll@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Wed, 13 Jun 2007 15:27:23 +0000 (15:27 +0000)
committeriripoll <iripoll@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Wed, 13 Jun 2007 15:27:23 +0000 (15:27 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fosa/trunk@464 35b4ef3e-fd22-0410-ab77-dab3279adceb

include/fosa_opaque_types.h
src_rtlinux/Makefile
src_rtlinux/fosa_app_def_sched.c
src_rtlinux/fosa_mutexes_and_condvars.c
src_rtlinux/fosa_threads_and_signals.c

index ca8b49c77910d75c7d66b28589403b6df27c2ecd..478f154f960fabe2198f439a9dccefb8bee8e992 100644 (file)
@@ -89,6 +89,7 @@
  *  ADS
  *********/
 
+#ifdef MARTE_OS
 typedef struct {
     posix_appsched_actions_t actions;
     struct timespec * timeout_ptr;
@@ -100,7 +101,9 @@ typedef struct {
 
 
 #define FOSA_ADS_ACTIONS_T_OPAQUE fosa_ads_actions_internal_t
-
+#else
+#define FOSA_ADS_ACTIONS_T_OPAQUE posix_appsched_actions_t
+#endif
 
 
 #endif
index 36a45e3ad492a9fa979299c037d8810d6f1c23de..f2ef839e35dbb48d2c26134adaa10ad6fb29e091 100644 (file)
@@ -1,6 +1,6 @@
 RTLINUX_PATH=../../../rtlinux-3.2-rc1/trunk
 
-OBJS=fosa_mutexes_and_condvars.o fosa_clocks_and_timers.o  fosa_threads_and_signals.o
+OBJS=fosa_app_def_sched.o fosa_mutexes_and_condvars.o fosa_clocks_and_timers.o  fosa_threads_and_signals.o
 #fosa_app_def_sched.o fosa_mutexes_and_condvars.o fosa_clocks_and_timers.o  fosa_threads_and_signals.o
 
 FOSA_INC=../include
index 7cdc85cda9fcb4d01b7e2a80eed5b8b5c71d50e1..01c2d38333f72e337636081975630e4dc034359f 100644 (file)
 // FOSA(Frescor Operating System Adaptation layer)
 //================================================
 
-
-// MISSED: HEADERS
+#include <fosa.h>
+#include <rtl.h>
+//#include <rtl_sched.h>
+#include <rtl_malloc.h>
 
 /********************************
  * Application-defined scheduling
@@ -76,7 +78,7 @@ int fosa_ads_scheduler_create (const fosa_ads_scheduler_ops_t * scheduler_ops,
                               size_t scheduler_data_size,
                               void * init_args, 
                               size_t init_args_size){
-
+    struct sched_param sched_param;
     pthread_attr_t  attr; 
     int ret;
 
@@ -131,14 +133,14 @@ int fosa_thread_attr_get_appscheduled (const frsh_thread_attr_t *attr,
 
 int fosa_thread_attr_set_appsched_params (frsh_thread_attr_t *attr,
                                                 const void *param,
-                                                int paramsize){
-     return pthread_attr_setappschedparam(attr, param, paramsize);
+                                                size_t paramsize){
+     return pthread_attr_setappschedparam(attr, (void *)param, paramsize);
 }
 
 int fosa_thread_attr_get_appsched_params (const frsh_thread_attr_t *attr,
                                          void *param,
                                          size_t *paramsize){
-     return pthread_attr_getappschedparam(attr, param, paramsize);     
+     return pthread_attr_getappschedparam((frsh_thread_attr_t *)attr, param, paramsize);       
 }
 
 int fosa_ads_set_appscheduled (frsh_thread_id_t thread,
@@ -160,12 +162,12 @@ int fosa_ads_get_appscheduled (frsh_thread_id_t thread,
 int fosa_ads_set_appschedparam (frsh_thread_id_t thread,
                                const void *param,
                                size_t paramsize){
-     return (!pthread_setappschedparam(thread, param, paramsize))?0:EINVAL;
+     return (!pthread_setappschedparam(thread, (void *)param, paramsize))?0:EINVAL;
 }
 
 int fosa_ads_get_appsched_params (frsh_thread_id_t thread,
-                                        void *param,
-                                        int *paramsize){
+                                 void *param,
+                                 size_t *paramsize){
      return (!pthread_getappschedparam(thread, param, paramsize))?0:EINVAL;
 }
 
@@ -181,7 +183,7 @@ int fosa_ads_get_appsched_params (frsh_thread_id_t thread,
 
 int fosa_adsactions_add_reject(fosa_ads_actions_t *sched_actions,
                               frsh_thread_id_t thread){
-     return posix_appsched_actions_addreject(sched_actions, thread);
+    return posix_appsched_actions_addreject(sched_actions, thread);
 }
 
 int fosa_adsactions_add_activate(fosa_ads_actions_t *sched_actions,
index d11e5afee4d691675d25b316a8860d2602440d89..24bdeddd16abfa1a81a1bbb55c9a4bbd1b594ba9 100644 (file)
@@ -127,7 +127,7 @@ 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);
+                        const struct timespec *abstime){
+     return pthread_cond_timedwait(cond, mutex, abstime);
 }
 
index 9fd715faa9f6b52a1736c4d21bbf201ced49258a..021c78a4f8c56a5533bcd7d8a4b9b15e30f1969f 100644 (file)
@@ -139,7 +139,7 @@ int fosa_thread_attr_set_prio(frsh_thread_attr_t *attr, int prio) {
   return EINVAL;
 }
 
-int fosa_thread_attr_get_prio (const frsh_thread_attr_t *attr, size_t *prio){
+int fosa_thread_attr_get_prio (const frsh_thread_attr_t *attr, int *prio){
      *prio = attr->sched_param.sched_priority;
      return 0;
 }
@@ -189,17 +189,18 @@ int fosa_signal_queue (frsh_signal_t signal, frsh_signal_info_t info,
                        frsh_thread_id_t receiver){
      union sigval value;
      
-     value.sival_ptr=info.area;
-     return sigqueue(receiver, signal, value);
+     value.sival_ptr=info.sival_ptr;
+     return sigqueue(0, signal, value);
 }
 
 int fosa_signal_queue_scheduler(frsh_signal_t signal, frsh_signal_info_t info) {
      union posix_appsched_eventinfo eventinfo;
      eventinfo.sig.signo=signal;
-     eventinfo.sig.siginfo=info;
+     eventinfo.sig.siginfo= (siginfo_t){info.sival_int};
      generate_event(pthread_self(), fosa_scheduler_thread, 
                     POSIX_APPSCHED_SIGNAL, &eventinfo, 
                     sizeof(union posix_appsched_eventinfo));
+     return 0;
 }
 
 int fosa_signal_wait (frsh_signal_t set[], int size, frsh_signal_t *signal_received,