]> git.llucax.com Git - software/libev.git/blobdiff - event.h
fix some aliasing issues again
[software/libev.git] / event.h
diff --git a/event.h b/event.h
index 48c34e6c1fb5c4c9251df72681b6c691b632b09e..aee8c3892b1646f35bb4ae28bb179f6c646a1dae 100644 (file)
--- a/event.h
+++ b/event.h
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
-#ifndef _EVENT_H_
-#define _EVENT_H_
+#ifndef EVENT_H__
+#define EVENT_H__
 
-#ifndef EV_EMBED
-# include "ev.h"
+#ifdef EV_H
+# include EV_H
+#else
+# include <ev.h>
 #endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+struct event_base;
+
+#define EVLIST_TIMEOUT  0x01
+#define EVLIST_INSERTED 0x02
+#define EVLIST_SIGNAL   0x04
+#define EVLIST_ACTIVE   0x08
+#define EVLIST_INTERNAL 0x10
+#define EVLIST_INIT     0x80
+
 struct event
 {
   /* libev watchers we map onto */
@@ -55,9 +66,8 @@ struct event
   int ev_fd;
   int ev_pri;
   int ev_res;
+  int ev_flags;
   short ev_events;
-
-  char initialised; /* flag to work around some idiosynchrasies in the API */
 };
 
 #define EV_PERSIST                 0x10
@@ -65,7 +75,7 @@ struct event
 #define EVENT_SIGNAL(ev)           ((int) (ev)->ev_fd)
 #define EVENT_FD(ev)               ((int) (ev)->ev_fd)
 
-#define event_initialized(ev)      ((ev)->initialised)
+#define event_initialized(ev)      ((ev)->ev_flags & EVLIST_INIT)
 
 #define evtimer_add(ev,tv)         event_add (ev, tv)
 #define evtimer_set(ev,cb,data)    event_set (ev, -1, 0, cb, data)
@@ -108,14 +118,13 @@ int event_once (int fd, short events, void (*cb)(int, short, void *), void *arg,
 
 int event_add (struct event *ev, struct timeval *tv);
 int event_del (struct event *ev);
+void event_active (struct event *ev, int res, short ncalls); /* ncalls is being ignored */
 
 int event_pending (struct event *ev, short, struct timeval *tv);
 
 int event_priority_init (int npri);
 int event_priority_set (struct event *ev, int pri);
 
-struct event_base;
-
 int event_base_set (struct event_base *base, struct event *ev);
 int event_base_loop (struct event_base *base, int);
 int event_base_loopexit (struct event_base *base, struct timeval *tv);
@@ -123,8 +132,8 @@ int event_base_dispatch (struct event_base *base);
 int event_base_once (struct event_base *base, int fd, short events, void (*cb)(int, short, void *), void *arg, struct timeval *tv);
 int event_base_priority_init (struct event_base *base, int fd);
 
-#ifndef EV_EMBED
-# include "event_compat.h"
+#ifndef EV_STANDALONE
+# include <event_compat.h>
 #endif
 
 #ifdef __cplusplus