summaryrefslogtreecommitdiffstats
path: root/freebsd/contrib/wpa/src/utils/eloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/contrib/wpa/src/utils/eloop.c')
-rw-r--r--freebsd/contrib/wpa/src/utils/eloop.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/freebsd/contrib/wpa/src/utils/eloop.c b/freebsd/contrib/wpa/src/utils/eloop.c
index 41de0f79..09493b89 100644
--- a/freebsd/contrib/wpa/src/utils/eloop.c
+++ b/freebsd/contrib/wpa/src/utils/eloop.c
@@ -16,6 +16,9 @@
#include "list.h"
#include "eloop.h"
+#ifdef __rtems__
+#define CONFIG_ELOOP_KQUEUE
+#endif /* __rtems__ */
#if defined(CONFIG_ELOOP_POLL) && defined(CONFIG_ELOOP_EPOLL)
#error Do not define both of poll and epoll
#endif
@@ -955,6 +958,7 @@ int eloop_replenish_timeout(unsigned int req_secs, unsigned int req_usecs,
}
+#ifndef __rtems__
#ifndef CONFIG_NATIVE_WINDOWS
static void eloop_handle_alarm(int sig)
{
@@ -966,8 +970,10 @@ static void eloop_handle_alarm(int sig)
exit(1);
}
#endif /* CONFIG_NATIVE_WINDOWS */
+#endif /* __rtems__ */
+#ifndef __rtems__
static void eloop_handle_signal(int sig)
{
int i;
@@ -990,6 +996,7 @@ static void eloop_handle_signal(int sig)
}
}
}
+#endif /* __rtems__ */
static void eloop_process_pending_signals(void)
@@ -1001,9 +1008,11 @@ static void eloop_process_pending_signals(void)
eloop.signaled = 0;
if (eloop.pending_terminate) {
+#ifndef __rtems__
#ifndef CONFIG_NATIVE_WINDOWS
alarm(0);
#endif /* CONFIG_NATIVE_WINDOWS */
+#endif /* __rtems__ */
eloop.pending_terminate = 0;
}
@@ -1017,6 +1026,7 @@ static void eloop_process_pending_signals(void)
}
+#ifndef __rtems__
int eloop_register_signal(int sig, eloop_signal_handler handler,
void *user_data)
{
@@ -1037,26 +1047,35 @@ int eloop_register_signal(int sig, eloop_signal_handler handler,
return 0;
}
+#endif /* __rtems__ */
int eloop_register_signal_terminate(eloop_signal_handler handler,
void *user_data)
{
+#ifndef __rtems__
int ret = eloop_register_signal(SIGINT, handler, user_data);
if (ret == 0)
ret = eloop_register_signal(SIGTERM, handler, user_data);
return ret;
+#else /* __rtems__ */
+ return 0;
+#endif /* __rtems__ */
}
int eloop_register_signal_reconfig(eloop_signal_handler handler,
void *user_data)
{
+#ifndef __rtems__
#ifdef CONFIG_NATIVE_WINDOWS
return 0;
#else /* CONFIG_NATIVE_WINDOWS */
return eloop_register_signal(SIGHUP, handler, user_data);
#endif /* CONFIG_NATIVE_WINDOWS */
+#else /* __rtems__ */
+ return 0;
+#endif /* __rtems__ */
}