git-svn-id: http://www.frescor.org/private/svn/frescor/fosa/trunk@408
35b4ef3e-fd22-0410-ab77-
dab3279adceb
#include <signal.h>
#include <time.h>
#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
#define FOSA_CLOCK_ID_T_OPAQUE clockid_t
#define FOSA_SYSTEM_CLOCK_OPAQUE CLOCK_REALTIME
*************************/
int fosa_clock_get_time(fosa_clock_id_t clockid,
*************************/
int fosa_clock_get_time(fosa_clock_id_t clockid,
- struct timespec current_time){
+ struct timespec *current_time){
return clock_gettime(clockid, current_time);
}
return clock_gettime(clockid, current_time);
}
event.sigev_notify = SIGEV_SIGNAL;
event.sigev_signo = signal;
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);
}
return timer_create(clockid, &event, timerid);
}
int fosa_mutex_init(frsh_mutex_t *mutex, int prioceiling){
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){
}
int fosa_mutex_destroy(frsh_mutex_t *mutex){
*********************/
int fosa_cond_init(fosa_cond_t *cond){
*********************/
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){
}
int fosa_cond_destroy(fosa_cond_t *cond){
int fosa_cond_timedwait(fosa_cond_t *cond,
frsh_mutex_t *mutex,
const struct timespec abstime){
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);
// FOSA(Frescor Operating System Adaptation layer)
//================================================
// FOSA(Frescor Operating System Adaptation layer)
//================================================
/*************************
* Thread identification
/*************************
* Thread identification
int fosa_thread_set_specific_data (int key, frsh_thread_id_t tid,
const void * value){
if ((0<key) && (key<FOSA_MAX_KEYS-1)){
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;
return 0;
}
return EINVAL;
}
int fosa_thread_attr_set_prio(frsh_thread_attr_t *attr, int prio) {
}
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;
attr->sched_param.sched_priority = prio;
return 0;
int fosa_set_accepted_signals(frsh_signal_t set[], int size) {
int x;
int fosa_set_accepted_signals(frsh_signal_t set[], int size) {
int x;
+ // 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.
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){
}
int fosa_signal_queue (frsh_signal_t signal, frsh_signal_info_t info,
frsh_thread_id_t receiver){
- 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 fosa_signal_wait (frsh_signal_t set[], int size, frsh_signal_t *signal_received,
frsh_signal_info_t *info){
rtl_sigset_t bitset;
siginfo_t __info;
rtl_sigset_t bitset;
siginfo_t __info;
sigwaitinfo(&bitset, &__info);
*signal_received=__info.si_signo;
*info = __info.si_value.sival_ptr;
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 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;
int x;
rtl_sigset_t bitset;
siginfo_t __info;
sigwaitinfo(&bitset, &__info);
*signal_received=__info.si_signo;
*info = __info.si_value.sival_ptr;
sigwaitinfo(&bitset, &__info);
*signal_received=__info.si_signo;
*info = __info.si_value.sival_ptr;