File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / mpd / src / event.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Nov 2 09:50:34 2016 UTC (7 years, 8 months ago) by misho
Branches: mpd, MAIN
CVS tags: v5_8p1_cross, v5_8p1, HEAD
mpd 5.8rc1

    1: /*
    2:  * See ``COPYRIGHT.mpd''
    3:  *
    4:  * $Id: event.h,v 1.1.1.2 2016/11/02 09:50:34 misho Exp $
    5:  *
    6:  */
    7: 
    8: #ifndef _EVENT_H_
    9: #define _EVENT_H_
   10: 
   11: /*
   12:  * DEFINITIONS
   13:  */
   14: 
   15: /* Types of events */
   16: 
   17:   #define EVENT_READ		PEVENT_READ	/* value = file descriptor */
   18:   #define EVENT_WRITE		PEVENT_WRITE	/* value = file descriptor */
   19:   #define EVENT_TIMEOUT		PEVENT_TIME	/* value = time in miliseconds */
   20:   
   21:   #define EVENT_RECURRING	PEVENT_RECURRING
   22: 
   23:   typedef void		(*EventHdlr)(int type, void *cookie);
   24: 
   25:   struct event_ref
   26:   {
   27:     int			type;
   28:     EventHdlr		handler;
   29:     struct pevent	*pe;
   30:     void		*arg;
   31:     const char		*dbg;
   32:   };
   33:   typedef struct event_ref	EventRef;
   34: 
   35: /*
   36:  * FUNCTIONS
   37:  */
   38: 
   39:   extern int	EventInit(void);
   40:   extern void	EventStop(void);
   41: #define EventRegister(ref, type, value, flags, action, cookie) 		\
   42: 	    EventRegister2(ref, type, value, flags, action, cookie,	\
   43: 	    #type " " #action "()",__FILE__, __LINE__)
   44:   extern int	EventRegister2(EventRef *ref, int type, int value,
   45: 		  int flags, EventHdlr action, void *cookie, const char *dbg,
   46: 		  const char *file, int line);
   47: #define EventUnRegister(ref)						\
   48: 	    EventUnRegister2(ref, __FILE__, __LINE__)
   49:   extern int	EventUnRegister2(EventRef *ref, const char *file, int line);
   50:   extern int	EventIsRegistered(EventRef *ref);
   51:   extern int	EventTimerRemain(EventRef *ref);
   52:   extern void	EventDump(Context ctx, const char *msg);
   53: 
   54: #endif
   55: 

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