*************************/
int fosa_clock_get_time(fosa_clock_id_t clockid,
- struct timespec current_time){
+ struct timespec *current_time){
return clock_gettime(clockid, current_time);
}
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);
}
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_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_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)
//================================================
-
+#include <fosa.h>
/*************************
* 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)){
- pthread_setspecific_for(key, tid, value);
+ // MISSED
+ //pthread_setspecific_for(key, tid, value);
return 0;
}
return EINVAL;
}
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;
}
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;
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;
sigwaitinfo(&bitset, &__info);
*signal_received=__info.si_signo;
*info = __info.si_value.sival_ptr;
- ??????
+ ??????*/
}