Home | History | Annotate | Line # | Download | only in util
      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