| /** |
| * @file re_main.h Interface to main polling routine |
| * |
| * Copyright (C) 2010 Creytiv.com |
| */ |
| |
| |
| enum { |
| #ifndef FD_READ |
| FD_READ = 1<<0, |
| #endif |
| #ifndef FD_WRITE |
| FD_WRITE = 1<<1, |
| #endif |
| FD_EXCEPT = 1<<2 |
| }; |
| |
| |
| /** |
| * File descriptor event handler |
| * |
| * @param flags Event flags |
| * @param arg Handler argument |
| */ |
| typedef void (fd_h)(int flags, void *arg); |
| |
| /** |
| * Thread-safe signal handler |
| * |
| * @param sig Signal number |
| */ |
| typedef void (re_signal_h)(int sig); |
| |
| |
| int fd_listen(int fd, int flags, fd_h *fh, void *arg); |
| void fd_close(int fd); |
| int fd_setsize(int maxfds); |
| void fd_debug(void); |
| |
| int libre_init(void); |
| void libre_close(void); |
| |
| int re_main(re_signal_h *signalh); |
| void re_cancel(void); |
| int re_debug(struct re_printf *pf, void *unused); |
| |
| int re_thread_init(void); |
| void re_thread_close(void); |
| void re_thread_enter(void); |
| void re_thread_leave(void); |
| |
| void re_set_mutex(void *mutexp); |
| |
| |
| /** Polling methods */ |
| enum poll_method { |
| METHOD_NULL = 0, |
| METHOD_POLL, |
| METHOD_SELECT, |
| METHOD_EPOLL, |
| METHOD_KQUEUE, |
| /* sep */ |
| METHOD_MAX |
| }; |
| |
| int poll_method_set(enum poll_method method); |
| enum poll_method poll_method_best(void); |
| const char *poll_method_name(enum poll_method method); |
| int poll_method_type(enum poll_method *method, const struct pl *name); |