X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=include%2Fircd_events.h;h=2dfe9241213b5fcd3f7000364dd2c112df065125;hb=cc05a230ac079fa15a2e43e6e68ef7126128cefd;hp=54d034f32c43dd21564f6f8449fdba82d6c21703;hpb=b8294f6c0db86ec8d204b0fda51070f3a415fb57;p=ircu2.10.12-pk.git diff --git a/include/ircd_events.h b/include/ircd_events.h index 54d034f..2dfe924 100644 --- a/include/ircd_events.h +++ b/include/ircd_events.h @@ -82,6 +82,8 @@ struct GenHeader { #define GEN_DESTROY 0x0001 /* generator is to be destroyed */ #define GEN_MARKED 0x0002 /* generator is marked for destruction */ #define GEN_ACTIVE 0x0004 /* generator is active */ +#define GEN_READD 0x0008 /* generator (timer) must be re-added */ +#define GEN_ERROR 0x0010 /* an error occurred on the generator */ struct Socket { struct GenHeader s_header; /* generator information */ @@ -141,6 +143,7 @@ struct Timer { #define t_ed_int(tim) ((tim)->t_header.gh_engdata.ed_int) #define t_ed_ptr(tim) ((tim)->t_header.gh_engdata.ed_ptr) #define t_active(tim) ((tim)->t_header.gh_flags & GEN_ACTIVE) +#define t_onqueue(tim) ((tim)->t_header.gh_prev_p) struct Event { struct Event* ev_next; /* linked list of events on queue */ @@ -208,6 +211,8 @@ do { \ event_generate(ET_DESTROY, _gen, 0); \ } \ } while (0) +#define gen_clear_error(gen) \ + (((struct GenHeader*) (gen))->gh_flags &= ~GEN_ERROR) void gen_dequeue(void* arg); @@ -215,6 +220,7 @@ void event_init(int max_sockets); void event_loop(void); void event_generate(enum EventType type, void* arg, int data); +struct Timer* timer_init(struct Timer* timer); void timer_add(struct Timer* timer, EventCallBack call, void* data, enum TimerType type, time_t value); void timer_del(struct Timer* timer);