re/include/re_main.h

70 lines
1.3 KiB
C
Raw Normal View History

2010-11-03 11:34:14 +00:00
/**
* @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);
2013-08-10 10:49:45 +00:00
void re_set_mutex(void *mutexp);
2010-11-03 11:34:14 +00:00
/** Polling methods */
enum poll_method {
METHOD_NULL = 0,
METHOD_POLL,
METHOD_SELECT,
METHOD_EPOLL,
2015-06-29 06:51:05 +00:00
METHOD_KQUEUE,
2010-11-03 11:34:14 +00:00
/* 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);