timer_settime(fosa_timeout_timer, int flags, at_time, 0);
}
+int fosa_ads_set_handled_signal_set(frsh_signal_t set[], int size){
+ int x;
-
-int fosa_ads_set_handled_signal_set(frsh_signal_t set[]){
-
+ rtl_sigemptyset(&fosa_scheduler_signal_bitmap);
+ for (x=0; x<size; x++)
+ rtl_sigaddset(&fosa_scheduler_signal_bitmap, set[x]);
}
-int fosa_ads_invoke_withdata (const void *msg,
- size_t msg_size,
- void *reply,
- size_t *reply_size){
+int fosa_ads_invoke_withdata (const void *msg, size_t msg_size,
+ void *reply, size_t *reply_size){
posix_appsched_invoke_withdata(msg, msg_size, reply, reply_size);
}
return sigqueue(receiver, 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;
+ generate_event(pthread_self(), fosa_scheduler_thread,
+ POSIX_APPSCHED_SIGNAL, &eventinfo,
+ sizeof(union posix_appsched_eventinfo));
+}
+
int fosa_signal_wait (frsh_signal_t set[], int size, frsh_signal_t *signal_received,
frsh_signal_info_t *info){
int x;