1 /* $NetBSD: events.h,v 1.2 2017/02/14 01:16:49 christos Exp $ */ 2 3 #ifndef _EVENTS_H_INCLUDED_ 4 #define _EVENTS_H_INCLUDED_ 5 6 /*++ 7 /* NAME 8 /* events 3h 9 /* SUMMARY 10 /* event manager 11 /* SYNOPSIS 12 /* #include <events.h> 13 /* DESCRIPTION 14 /* .nf 15 16 /* 17 * System library. 18 */ 19 #include <time.h> 20 21 /* 22 * External interface. 23 */ 24 typedef void (*EVENT_NOTIFY_FN) (int, void *); 25 26 #define EVENT_NOTIFY_TIME_FN EVENT_NOTIFY_FN /* legacy */ 27 #define EVENT_NOTIFY_RDWR_FN EVENT_NOTIFY_FN /* legacy */ 28 29 extern time_t event_time(void); 30 extern void event_enable_read(int, EVENT_NOTIFY_RDWR_FN, void *); 31 extern void event_enable_write(int, EVENT_NOTIFY_RDWR_FN, void *); 32 extern void event_disable_readwrite(int); 33 extern time_t event_request_timer(EVENT_NOTIFY_TIME_FN, void *, int); 34 extern int event_cancel_timer(EVENT_NOTIFY_TIME_FN, void *); 35 extern void event_loop(int); 36 extern void event_drain(int); 37 extern void event_fork(void); 38 39 /* 40 * Event codes. 41 */ 42 #define EVENT_READ (1<<0) /* read event */ 43 #define EVENT_WRITE (1<<1) /* write event */ 44 #define EVENT_XCPT (1<<2) /* exception */ 45 #define EVENT_TIME (1<<3) /* timer event */ 46 47 #define EVENT_ERROR EVENT_XCPT 48 49 /* 50 * Dummies. 51 */ 52 #define EVENT_NULL_TYPE (0) 53 #define EVENT_NULL_CONTEXT ((void *) 0) 54 #define EVENT_NULL_DELAY (0) 55 56 /* LICENSE 57 /* .ad 58 /* .fi 59 /* The Secure Mailer license must be distributed with this software. 60 /* AUTHOR(S) 61 /* Wietse Venema 62 /* IBM T.J. Watson Research 63 /* P.O. Box 704 64 /* Yorktown Heights, NY 10598, USA 65 /* CREATION DATE 66 /* Wed Jan 29 17:00:03 EST 1997 67 /*--*/ 68 69 #endif 70