Lines Matching refs:eloop

14 #include "eloop.h"
27 WPA_TRACE_REF(eloop);
38 WPA_TRACE_REF(eloop);
81 static struct eloop_data eloop;
88 wpa_trace_show("eloop SIGSEGV");
98 wpa_trace_add_ref(&table->table[i], eloop,
112 wpa_trace_remove_ref(&table->table[i], eloop,
129 os_memset(&eloop, 0, sizeof(eloop));
130 dl_list_init(&eloop.timeout);
145 if (sock > eloop.max_sock)
148 new_max_sock = eloop.max_sock;
154 if (new_max_sock >= eloop.max_pollfd_map) {
156 nmap = os_realloc_array(eloop.pollfds_map, new_max_sock + 50,
161 eloop.max_pollfd_map = new_max_sock + 50;
162 eloop.pollfds_map = nmap;
165 if (eloop.count + 1 > eloop.max_poll_fds) {
167 int nmax = eloop.count + 1 + 50;
168 n = os_realloc_array(eloop.pollfds, nmax,
173 eloop.max_poll_fds = nmax;
174 eloop.pollfds = n;
191 eloop.max_sock = new_max_sock;
192 eloop.count++;
221 eloop.count--;
417 wpa_trace_dump_funcname("eloop unregistered socket "
420 wpa_trace_dump("eloop sock", &table->table[i]);
445 return &eloop.readers;
447 return &eloop.writers;
449 return &eloop.exceptions;
511 wpa_trace_add_ref(timeout, eloop, eloop_data);
516 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) {
522 dl_list_add_tail(&eloop.timeout, &timeout->list);
531 wpa_trace_remove_ref(timeout, eloop, timeout->eloop_data);
543 dl_list_for_each_safe(timeout, prev, &eloop.timeout,
564 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) {
578 wpa_printf(MSG_ERROR, "eloop: could not process SIGINT or SIGTERM in "
593 if ((sig == SIGINT || sig == SIGTERM) && !eloop.pending_terminate) {
596 eloop.pending_terminate = 1;
602 eloop.signaled++;
603 for (i = 0; i < eloop.signal_count; i++) {
604 if (eloop.signals[i].sig == sig) {
605 eloop.signals[i].signaled++;
616 if (eloop.signaled == 0)
618 eloop.signaled = 0;
620 if (eloop.pending_terminate) {
624 eloop.pending_terminate = 0;
627 for (i = 0; i < eloop.signal_count; i++) {
628 if (eloop.signals[i].signaled) {
629 eloop.signals[i].signaled = 0;
630 eloop.signals[i].handler(eloop.signals[i].sig,
631 eloop.signals[i].user_data);
642 tmp = os_realloc_array(eloop.signals, eloop.signal_count + 1,
647 tmp[eloop.signal_count].sig = sig;
648 tmp[eloop.signal_count].user_data = user_data;
649 tmp[eloop.signal_count].handler = handler;
650 tmp[eloop.signal_count].signaled = 0;
651 eloop.signal_count++;
652 eloop.signals = tmp;
700 while (!eloop.terminate &&
701 (!dl_list_empty(&eloop.timeout) || eloop.readers.count > 0 ||
702 eloop.writers.count > 0 || eloop.exceptions.count > 0)) {
704 timeout = dl_list_first(&eloop.timeout, struct eloop_timeout,
722 &eloop.readers, &eloop.writers, &eloop.exceptions,
723 eloop.pollfds, eloop.pollfds_map,
724 eloop.max_pollfd_map);
725 res = poll(eloop.pollfds, num_poll_fds,
733 eloop_sock_table_set_fds(&eloop.readers, rfds);
734 eloop_sock_table_set_fds(&eloop.writers, wfds);
735 eloop_sock_table_set_fds(&eloop.exceptions, efds);
736 res = select(eloop.max_sock + 1, rfds, wfds, efds,
746 timeout = dl_list_first(&eloop.timeout, struct eloop_timeout,
765 eloop_sock_table_dispatch(&eloop.readers, &eloop.writers,
766 &eloop.exceptions, eloop.pollfds_map,
767 eloop.max_pollfd_map);
769 eloop_sock_table_dispatch(&eloop.readers, rfds);
770 eloop_sock_table_dispatch(&eloop.writers, wfds);
771 eloop_sock_table_dispatch(&eloop.exceptions, efds);
787 eloop.terminate = 1;
797 dl_list_for_each_safe(timeout, prev, &eloop.timeout,
810 wpa_trace_dump_funcname("eloop unregistered timeout handler",
812 wpa_trace_dump("eloop timeout", timeout);
815 eloop_sock_table_destroy(&eloop.readers);
816 eloop_sock_table_destroy(&eloop.writers);
817 eloop_sock_table_destroy(&eloop.exceptions);
818 os_free(eloop.signals);
821 os_free(eloop.pollfds);
822 os_free(eloop.pollfds_map);
829 return eloop.terminate;