Annotation of embedaddon/bird2/lib/event.h, revision 1.1

1.1     ! misho       1: /*
        !             2:  *     BIRD Library -- Event Processing
        !             3:  *
        !             4:  *     (c) 1999 Martin Mares <mj@ucw.cz>
        !             5:  *
        !             6:  *     Can be freely distributed and used under the terms of the GNU GPL.
        !             7:  */
        !             8: 
        !             9: #ifndef _BIRD_EVENT_H_
        !            10: #define _BIRD_EVENT_H_
        !            11: 
        !            12: #include "lib/resource.h"
        !            13: 
        !            14: typedef struct event {
        !            15:   resource r;
        !            16:   void (*hook)(void *);
        !            17:   void *data;
        !            18:   node n;                              /* Internal link */
        !            19: } event;
        !            20: 
        !            21: typedef list event_list;
        !            22: 
        !            23: extern event_list global_event_list;
        !            24: 
        !            25: event *ev_new(pool *);
        !            26: void ev_run(event *);
        !            27: #define ev_init_list(el) init_list(el)
        !            28: void ev_enqueue(event_list *, event *);
        !            29: void ev_schedule(event *);
        !            30: void ev_postpone(event *);
        !            31: int ev_run_list(event_list *);
        !            32: 
        !            33: static inline int
        !            34: ev_active(event *e)
        !            35: {
        !            36:   return e->n.next != NULL;
        !            37: }
        !            38: 
        !            39: static inline event*
        !            40: ev_new_init(pool *p, void (*hook)(void *), void *data)
        !            41: {
        !            42:   event *e = ev_new(p);
        !            43:   e->hook = hook;
        !            44:   e->data = data;
        !            45:   return e;
        !            46: }
        !            47: 
        !            48: 
        !            49: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>