39de7e401c4775b362a283e4714b49f6859eecabdanmcd * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Use is subject to license terms.
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Copyright (c) 2003-2004, Jouni Malinen <jkmaline@cc.hut.fi>
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Sun elects to license this software under the BSD license.
a399b7655a1d835aa8606c2b29e4e777baac8635zf * See README for more details.
a399b7655a1d835aa8606c2b29e4e777baac8635zf#pragma ident "%Z%%M% %I% %E% SMI"
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Initialize global event loop data - must be called before any other eloop_*
a399b7655a1d835aa8606c2b29e4e777baac8635zf * function. user_data is a pointer to global data structure and will be passed
a399b7655a1d835aa8606c2b29e4e777baac8635zf * as eloop_ctx to signal handlers.
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Register handler for read event
a399b7655a1d835aa8606c2b29e4e777baac8635zf return (-1);
a399b7655a1d835aa8606c2b29e4e777baac8635zf return (0);
a399b7655a1d835aa8606c2b29e4e777baac8635zf sizeof (struct eloop_sock));
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Register timeout routines
a399b7655a1d835aa8606c2b29e4e777baac8635zfeloop_register_timeout(unsigned int secs, unsigned int usecs,
a399b7655a1d835aa8606c2b29e4e777baac8635zf timeout = (struct eloop_timeout *)malloc(sizeof (*timeout));
a399b7655a1d835aa8606c2b29e4e777baac8635zf return (-1);
a399b7655a1d835aa8606c2b29e4e777baac8635zf return (0);
a399b7655a1d835aa8606c2b29e4e777baac8635zf return (0);
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Cancel timeouts matching <handler,eloop_data,user_data>.
a399b7655a1d835aa8606c2b29e4e777baac8635zf * ELOOP_ALL_CTX can be used as a wildcard for cancelling all timeouts
a399b7655a1d835aa8606c2b29e4e777baac8635zf * regardless of eloop_data/user_data.
a399b7655a1d835aa8606c2b29e4e777baac8635zfeloop_cancel_timeout(void (*handler)(void *eloop_ctx, void *sock_ctx),
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Register handler for signal.
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Note: signals are 'global' events and there is no local eloop_data pointer
a399b7655a1d835aa8606c2b29e4e777baac8635zf * like with other handlers. The (global) pointer given to eloop_init() will be
a399b7655a1d835aa8606c2b29e4e777baac8635zf * used as eloop_ctx for signal handlers.
a399b7655a1d835aa8606c2b29e4e777baac8635zf void (*handler)(int sig, void *eloop_ctx, void *signal_ctx),
a399b7655a1d835aa8606c2b29e4e777baac8635zf sizeof (struct eloop_signal));
a399b7655a1d835aa8606c2b29e4e777baac8635zf return (-1);
a399b7655a1d835aa8606c2b29e4e777baac8635zf return (0);
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Start event loop and continue running as long as there are any registered
a399b7655a1d835aa8606c2b29e4e777baac8635zf * event handlers.
a399b7655a1d835aa8606c2b29e4e777baac8635zf struct pollfd pfds[MAX_POLLFDS]; /* array of polled fd */
a399b7655a1d835aa8606c2b29e4e777baac8635zf /* check if some registered timeouts have occurred */
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Terminate event loop even if there are registered events.
a399b7655a1d835aa8606c2b29e4e777baac8635zf * Free any reserved resources. After calling eloop_destoy(), other eloop_*
a399b7655a1d835aa8606c2b29e4e777baac8635zf * functions must not be called before re-running eloop_init().