Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching refs:eloop

18 #include "eloop.h"
69 static struct eloop_data eloop;
74 os_memset(&eloop, 0, sizeof(eloop));
75 eloop.user_data = user_data;
101 if (sock > eloop.max_sock)
102 eloop.max_sock = sock;
194 return &eloop.readers;
196 return &eloop.writers;
198 return &eloop.exceptions;
250 if (eloop.timeout == NULL) {
251 eloop.timeout = timeout;
256 tmp = eloop.timeout;
265 timeout->next = eloop.timeout;
266 eloop.timeout = timeout;
283 timeout = eloop.timeout;
293 eloop.timeout = next;
313 tmp = eloop.timeout;
330 fprintf(stderr, "eloop: could not process SIGINT or SIGTERM in two "
345 if ((sig == SIGINT || sig == SIGTERM) && !eloop.pending_terminate) {
348 eloop.pending_terminate = 1;
354 eloop.signaled++;
355 for (i = 0; i < eloop.signal_count; i++) {
356 if (eloop.signals[i].sig == sig) {
357 eloop.signals[i].signaled++;
368 if (eloop.signaled == 0)
370 eloop.signaled = 0;
372 if (eloop.pending_terminate) {
376 eloop.pending_terminate = 0;
379 for (i = 0; i < eloop.signal_count; i++) {
380 if (eloop.signals[i].signaled) {
381 eloop.signals[i].signaled = 0;
382 eloop.signals[i].handler(eloop.signals[i].sig,
383 eloop.user_data,
384 eloop.signals[i].user_data);
396 os_realloc(eloop.signals,
397 (eloop.signal_count + 1) *
402 tmp[eloop.signal_count].sig = sig;
403 tmp[eloop.signal_count].user_data = user_data;
404 tmp[eloop.signal_count].handler = handler;
405 tmp[eloop.signal_count].signaled = 0;
406 eloop.signal_count++;
407 eloop.signals = tmp;
452 while (!eloop.terminate &&
453 (eloop.timeout || eloop.readers.count > 0 ||
454 eloop.writers.count > 0 || eloop.exceptions.count > 0)) {
455 if (eloop.timeout) {
457 if (os_time_before(&now, &eloop.timeout->time))
458 os_time_sub(&eloop.timeout->time, &now, &tv);
469 eloop_sock_table_set_fds(&eloop.readers, rfds);
470 eloop_sock_table_set_fds(&eloop.writers, wfds);
471 eloop_sock_table_set_fds(&eloop.exceptions, efds);
472 res = select(eloop.max_sock + 1, rfds, wfds, efds,
473 eloop.timeout ? &_tv : NULL);
481 if (eloop.timeout) {
485 if (!os_time_before(&now, &eloop.timeout->time)) {
486 tmp = eloop.timeout;
487 eloop.timeout = eloop.timeout->next;
498 eloop_sock_table_dispatch(&eloop.readers, rfds);
499 eloop_sock_table_dispatch(&eloop.writers, wfds);
500 eloop_sock_table_dispatch(&eloop.exceptions, efds);
512 eloop.terminate = 1;
520 timeout = eloop.timeout;
526 eloop_sock_table_destroy(&eloop.readers);
527 eloop_sock_table_destroy(&eloop.writers);
528 eloop_sock_table_destroy(&eloop.exceptions);
529 os_free(eloop.signals);
535 return eloop.terminate;
554 return eloop.user_data;