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(eloop.pollfds_map, sizeof(struct pollfd *) *
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(eloop.pollfds, sizeof(struct pollfd) * nmax);
172 eloop.max_poll_fds = nmax;
173 eloop.pollfds = n;
191 eloop.max_sock = new_max_sock;
192 eloop.count++;
221 eloop.count--;
416 wpa_trace_dump_funcname("eloop unregistered socket "
419 wpa_trace_dump("eloop sock", &table->table[i]);
444 return &eloop.readers;
446 return &eloop.writers;
448 return &eloop.exceptions;
510 wpa_trace_add_ref(timeout, eloop, eloop_data);
515 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) {
521 dl_list_add_tail(&eloop.timeout, &timeout->list);
530 wpa_trace_remove_ref(timeout, eloop, timeout->eloop_data);
542 dl_list_for_each_safe(timeout, prev, &eloop.timeout,
563 dl_list_for_each(tmp, &eloop.timeout, struct eloop_timeout, list) {
577 wpa_printf(MSG_ERROR, "eloop: could not process SIGINT or SIGTERM in "
592 if ((sig == SIGINT || sig == SIGTERM) && !eloop.pending_terminate) {
595 eloop.pending_terminate = 1;
601 eloop.signaled++;
602 for (i = 0; i < eloop.signal_count; i++) {
603 if (eloop.signals[i].sig == sig) {
604 eloop.signals[i].signaled++;
615 if (eloop.signaled == 0)
617 eloop.signaled = 0;
619 if (eloop.pending_terminate) {
623 eloop.pending_terminate = 0;
626 for (i = 0; i < eloop.signal_count; i++) {
627 if (eloop.signals[i].signaled) {
628 eloop.signals[i].signaled = 0;
629 eloop.signals[i].handler(eloop.signals[i].sig,
630 eloop.signals[i].user_data);
642 os_realloc(eloop.signals,
643 (eloop.signal_count + 1) *
648 tmp[eloop.signal_count].sig = sig;
649 tmp[eloop.signal_count].user_data = user_data;
650 tmp[eloop.signal_count].handler = handler;
651 tmp[eloop.signal_count].signaled = 0;
652 eloop.signal_count++;
653 eloop.signals = tmp;
701 while (!eloop.terminate &&
702 (!dl_list_empty(&eloop.timeout) || eloop.readers.count > 0 ||
703 eloop.writers.count > 0 || eloop.exceptions.count > 0)) {
705 timeout = dl_list_first(&eloop.timeout, struct eloop_timeout,
723 &eloop.readers, &eloop.writers, &eloop.exceptions,
724 eloop.pollfds, eloop.pollfds_map,
725 eloop.max_pollfd_map);
726 res = poll(eloop.pollfds, num_poll_fds,
734 eloop_sock_table_set_fds(&eloop.readers, rfds);
735 eloop_sock_table_set_fds(&eloop.writers, wfds);
736 eloop_sock_table_set_fds(&eloop.exceptions, efds);
737 res = select(eloop.max_sock + 1, rfds, wfds, efds,
747 timeout = dl_list_first(&eloop.timeout, struct eloop_timeout,
766 eloop_sock_table_dispatch(&eloop.readers, &eloop.writers,
767 &eloop.exceptions, eloop.pollfds_map,
768 eloop.max_pollfd_map);
770 eloop_sock_table_dispatch(&eloop.readers, rfds);
771 eloop_sock_table_dispatch(&eloop.writers, wfds);
772 eloop_sock_table_dispatch(&eloop.exceptions, efds);
788 eloop.terminate = 1;
798 dl_list_for_each_safe(timeout, prev, &eloop.timeout,
811 wpa_trace_dump_funcname("eloop unregistered timeout handler",
813 wpa_trace_dump("eloop timeout", timeout);
816 eloop_sock_table_destroy(&eloop.readers);
817 eloop_sock_table_destroy(&eloop.writers);
818 eloop_sock_table_destroy(&eloop.exceptions);
819 os_free(eloop.signals);
822 os_free(eloop.pollfds);
823 os_free(eloop.pollfds_map);
830 return eloop.terminate;