From: iripoll Date: Wed, 13 Jun 2007 15:27:23 +0000 (+0000) Subject: rtlinux version of fosa_app_def_sched.c already compiles X-Git-Url: https://rtime.felk.cvut.cz/gitweb/frescor/fosa.git/commitdiff_plain/7e45702d13c7e777aaed1add323302a8bc25d321 rtlinux version of fosa_app_def_sched.c already compiles git-svn-id: http://www.frescor.org/private/svn/frescor/fosa/trunk@464 35b4ef3e-fd22-0410-ab77-dab3279adceb --- diff --git a/include/fosa_opaque_types.h b/include/fosa_opaque_types.h index ca8b49c..478f154 100644 --- a/include/fosa_opaque_types.h +++ b/include/fosa_opaque_types.h @@ -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 diff --git a/src_rtlinux/Makefile b/src_rtlinux/Makefile index 36a45e3..f2ef839 100644 --- a/src_rtlinux/Makefile +++ b/src_rtlinux/Makefile @@ -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 diff --git a/src_rtlinux/fosa_app_def_sched.c b/src_rtlinux/fosa_app_def_sched.c index 7cdc85c..01c2d38 100644 --- a/src_rtlinux/fosa_app_def_sched.c +++ b/src_rtlinux/fosa_app_def_sched.c @@ -58,8 +58,10 @@ // FOSA(Frescor Operating System Adaptation layer) //================================================ - -// MISSED: HEADERS +#include +#include +//#include +#include /******************************** * 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, diff --git a/src_rtlinux/fosa_mutexes_and_condvars.c b/src_rtlinux/fosa_mutexes_and_condvars.c index d11e5af..24bdedd 100644 --- a/src_rtlinux/fosa_mutexes_and_condvars.c +++ b/src_rtlinux/fosa_mutexes_and_condvars.c @@ -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); } diff --git a/src_rtlinux/fosa_threads_and_signals.c b/src_rtlinux/fosa_threads_and_signals.c index 9fd715f..021c78a 100644 --- a/src_rtlinux/fosa_threads_and_signals.c +++ b/src_rtlinux/fosa_threads_and_signals.c @@ -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,