xref: /netbsd-src/external/ibm-public/postfix/dist/src/util/events.h (revision e89934bbf778a6d6d6894877c4da59d0c7835b0f)
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