X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=uloop.h;h=2f1eb4c49e12896d11e64bb8e16c0fd8e76b0ef0;hb=7f671b1e68a6664b5baf3e3cffc1bb0880984267;hp=1d32c39d62b2f1c849af28eb51861bcc68cd453d;hpb=8b0d9331547b7d784278e38564f416d61387082c;p=project%2Flibubox.git diff --git a/uloop.h b/uloop.h index 1d32c39..2f1eb4c 100644 --- a/uloop.h +++ b/uloop.h @@ -44,10 +44,17 @@ typedef void (*uloop_process_handler)(struct uloop_process *c, int ret); #define ULOOP_WRITE (1 << 1) #define ULOOP_EDGE_TRIGGER (1 << 2) #define ULOOP_BLOCKING (1 << 3) + +#define ULOOP_EVENT_MASK (ULOOP_READ | ULOOP_WRITE) + +/* internal flags */ +#define ULOOP_EVENT_BUFFERED (1 << 4) #ifdef USE_KQUEUE -#define ULOOP_EDGE_DEFER (1 << 4) +#define ULOOP_EDGE_DEFER (1 << 5) #endif +#define ULOOP_ERROR_CB (1 << 6) + struct uloop_fd { uloop_fd_handler cb; @@ -55,9 +62,7 @@ struct uloop_fd bool eof; bool error; bool registered; -#ifdef USE_KQUEUE - bool flags; -#endif + uint8_t flags; }; struct uloop_timeout @@ -98,7 +103,7 @@ static inline void uloop_end(void) } int uloop_init(void); -void uloop_run(void); +int uloop_run(void); void uloop_done(void); #endif