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;
}
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,