other-licenses/android/eventlib.h

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/other-licenses/android/eventlib.h	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,214 @@
     1.4 +/*	$NetBSD: eventlib.h,v 1.1.1.3 2005/12/21 23:15:22 christos Exp $	*/
     1.5 +
     1.6 +/*
     1.7 + * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
     1.8 + * Copyright (c) 1995-1999 by Internet Software Consortium
     1.9 + *
    1.10 + * Permission to use, copy, modify, and distribute this software for any
    1.11 + * purpose with or without fee is hereby granted, provided that the above
    1.12 + * copyright notice and this permission notice appear in all copies.
    1.13 + *
    1.14 + * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
    1.15 + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    1.16 + * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
    1.17 + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    1.18 + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    1.19 + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
    1.20 + * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    1.21 + */
    1.22 +
    1.23 +/* eventlib.h - exported interfaces for eventlib
    1.24 + * vix 09sep95 [initial]
    1.25 + *
    1.26 + * Id: eventlib.h,v 1.1.2.1.4.2 2005/07/28 07:43:18 marka Exp
    1.27 + */
    1.28 +
    1.29 +/*
    1.30 + * This version of this file is derived from Android 2.3 "Gingerbread",
    1.31 + * which contains uncredited changes by Android/Google developers.  It has
    1.32 + * been modified in 2011 for use in the Android build of Mozilla Firefox by
    1.33 + * Mozilla contributors (including Michael Edwards <m.k.edwards@gmail.com>,
    1.34 + * and Steve Workman <sjhworkman@gmail.com>).
    1.35 + * These changes are offered under the same license as the original NetBSD
    1.36 + * file, whose copyright and license are unchanged above.
    1.37 + */
    1.38 +
    1.39 +#ifndef _EVENTLIB_H
    1.40 +#define _EVENTLIB_H
    1.41 +
    1.42 +#include <sys/types.h>
    1.43 +#include <sys/uio.h>
    1.44 +#include <sys/time.h>
    1.45 +#include <stdio.h>
    1.46 +
    1.47 +#ifndef __P
    1.48 +# define __EVENTLIB_P_DEFINED
    1.49 +# ifdef __STDC__
    1.50 +#  define __P(x) x
    1.51 +# else
    1.52 +#  define __P(x) ()
    1.53 +# endif
    1.54 +#endif
    1.55 +
    1.56 +/* In the absence of branded types... */
    1.57 +typedef struct { void *opaque; } evConnID;
    1.58 +typedef struct { void *opaque; } evFileID;
    1.59 +typedef struct { void *opaque; } evStreamID;
    1.60 +typedef struct { void *opaque; } evTimerID;
    1.61 +typedef struct { void *opaque; } evWaitID;
    1.62 +typedef struct { void *opaque; } evContext;
    1.63 +typedef struct { void *opaque; } evEvent;
    1.64 +
    1.65 +#define	evInitID(id) ((id)->opaque = NULL)
    1.66 +#define	evTestID(id) ((id).opaque != NULL)
    1.67 +
    1.68 +typedef void (*evConnFunc)__P((evContext, void *, int, const void *, int,
    1.69 +			       const void *, int));
    1.70 +typedef void (*evFileFunc)__P((evContext, void *, int, int));
    1.71 +typedef	void (*evStreamFunc)__P((evContext, void *, int, int));
    1.72 +typedef void (*evTimerFunc)__P((evContext, void *,
    1.73 +				struct timespec, struct timespec));
    1.74 +typedef	void (*evWaitFunc)__P((evContext, void *, const void *));
    1.75 +
    1.76 +typedef	struct { unsigned char mask[256/8]; } evByteMask;
    1.77 +#define	EV_BYTEMASK_BYTE(b) ((b) / 8)
    1.78 +#define	EV_BYTEMASK_MASK(b) (1 << ((b) % 8))
    1.79 +#define	EV_BYTEMASK_SET(bm, b) \
    1.80 +	((bm).mask[EV_BYTEMASK_BYTE(b)] |= EV_BYTEMASK_MASK(b))
    1.81 +#define	EV_BYTEMASK_CLR(bm, b) \
    1.82 +	((bm).mask[EV_BYTEMASK_BYTE(b)] &= ~EV_BYTEMASK_MASK(b))
    1.83 +#define	EV_BYTEMASK_TST(bm, b) \
    1.84 +	((bm).mask[EV_BYTEMASK_BYTE(b)] & EV_BYTEMASK_MASK(b))
    1.85 +
    1.86 +#define	EV_POLL		1
    1.87 +#define	EV_WAIT		2
    1.88 +#define	EV_NULL		4
    1.89 +
    1.90 +#define	EV_READ		1
    1.91 +#define	EV_WRITE	2
    1.92 +#define	EV_EXCEPT	4
    1.93 +
    1.94 +#define EV_WASNONBLOCKING 8	/* Internal library use. */
    1.95 +
    1.96 +/* eventlib.c */
    1.97 +#define evCreate	__evCreate
    1.98 +#define evSetDebug	__evSetDebug
    1.99 +#define evDestroy	__evDestroy
   1.100 +#define evGetNext	__evGetNext
   1.101 +#define evDispatch	__evDispatch
   1.102 +#define evDrop		__evDrop
   1.103 +#define evMainLoop	__evMainLoop
   1.104 +#define evHighestFD	__evHighestFD
   1.105 +#define evGetOption	__evGetOption
   1.106 +#define evSetOption	__evSetOption
   1.107 +
   1.108 +int  evCreate __P((evContext *));
   1.109 +void evSetDebug __P((evContext, int, FILE *));
   1.110 +int  evDestroy __P((evContext));
   1.111 +int  evGetNext __P((evContext, evEvent *, int));
   1.112 +int  evDispatch __P((evContext, evEvent));
   1.113 +void evDrop __P((evContext, evEvent));
   1.114 +int  evMainLoop __P((evContext));
   1.115 +int  evHighestFD __P((evContext));
   1.116 +int  evGetOption __P((evContext *, const char *, int *));
   1.117 +int  evSetOption __P((evContext *, const char *, int));
   1.118 +
   1.119 +/* ev_connects.c */
   1.120 +#define evListen	__evListen
   1.121 +#define evConnect	__evConnect
   1.122 +#define evCancelConn	__evCancelConn
   1.123 +#define evHold		__evHold
   1.124 +#define evUnhold	__evUnhold
   1.125 +#define evTryAccept	__evTryAccept
   1.126 +
   1.127 +int evListen __P((evContext, int, int, evConnFunc, void *, evConnID *));
   1.128 +int evConnect __P((evContext, int, const void *, int,
   1.129 +		   evConnFunc, void *, evConnID *));
   1.130 +int evCancelConn __P((evContext, evConnID));
   1.131 +int evHold __P((evContext, evConnID));
   1.132 +int evUnhold __P((evContext, evConnID));
   1.133 +int evTryAccept __P((evContext, evConnID, int *));
   1.134 +
   1.135 +/* ev_files.c */
   1.136 +#define evSelectFD	__evSelectFD
   1.137 +#define evDeselectFD	__evDeselectFD
   1.138 +
   1.139 +int evSelectFD __P((evContext, int, int, evFileFunc, void *, evFileID *));
   1.140 +int evDeselectFD __P((evContext, evFileID));
   1.141 +
   1.142 +/* ev_streams.c */
   1.143 +#define evConsIovec	__evConsIovec
   1.144 +#define evWrite		__evWrite
   1.145 +#define evRead		__evRead
   1.146 +#define evTimeRW	__evTimeRW
   1.147 +#define evUntimeRW	__evUntimeRW
   1.148 +#define	evCancelRW	__evCancelRW
   1.149 +
   1.150 +struct iovec evConsIovec __P((void *, size_t));
   1.151 +int evWrite __P((evContext, int, const struct iovec *, int,
   1.152 +		 evStreamFunc func, void *, evStreamID *));
   1.153 +int evRead __P((evContext, int, const struct iovec *, int,
   1.154 +		evStreamFunc func, void *, evStreamID *));
   1.155 +int evTimeRW __P((evContext, evStreamID, evTimerID timer));
   1.156 +int evUntimeRW __P((evContext, evStreamID));
   1.157 +int evCancelRW __P((evContext, evStreamID));
   1.158 +
   1.159 +/* ev_timers.c */
   1.160 +#define evConsTime	__evConsTime
   1.161 +#define evAddTime	__evAddTime
   1.162 +#define evSubTime	__evSubTime
   1.163 +#define evCmpTime	__evCmpTime
   1.164 +#define	evTimeSpec	__evTimeSpec
   1.165 +#define	evTimeVal	__evTimeVal
   1.166 +
   1.167 +#define evNowTime		__evNowTime
   1.168 +#define evUTCTime		__evUTCTime
   1.169 +#define evLastEventTime		__evLastEventTime
   1.170 +#define evSetTimer		__evSetTimer
   1.171 +#define evClearTimer		__evClearTimer
   1.172 +#define evConfigTimer		__evConfigTimer
   1.173 +#define evResetTimer		__evResetTimer
   1.174 +#define evSetIdleTimer		__evSetIdleTimer
   1.175 +#define evClearIdleTimer	__evClearIdleTimer
   1.176 +#define evResetIdleTimer	__evResetIdleTimer
   1.177 +#define evTouchIdleTimer	__evTouchIdleTimer
   1.178 +
   1.179 +struct timespec evConsTime __P((time_t sec, long nsec));
   1.180 +struct timespec evAddTime __P((struct timespec, struct timespec));
   1.181 +struct timespec evSubTime __P((struct timespec, struct timespec));
   1.182 +struct timespec evNowTime __P((void));
   1.183 +struct timespec evUTCTime __P((void));
   1.184 +struct timespec evLastEventTime __P((evContext));
   1.185 +struct timespec evTimeSpec __P((struct timeval));
   1.186 +struct timeval evTimeVal __P((struct timespec));
   1.187 +int evCmpTime __P((struct timespec, struct timespec));
   1.188 +int evSetTimer __P((evContext, evTimerFunc, void *, struct timespec,
   1.189 +		    struct timespec, evTimerID *));
   1.190 +int evClearTimer __P((evContext, evTimerID));
   1.191 +int evConfigTimer __P((evContext, evTimerID, const char *param,
   1.192 +		      int value));
   1.193 +int evResetTimer __P((evContext, evTimerID, evTimerFunc, void *,
   1.194 +		      struct timespec, struct timespec));
   1.195 +int evSetIdleTimer __P((evContext, evTimerFunc, void *, struct timespec,
   1.196 +			evTimerID *));
   1.197 +int evClearIdleTimer __P((evContext, evTimerID));
   1.198 +int evResetIdleTimer __P((evContext, evTimerID, evTimerFunc, void *,
   1.199 +			  struct timespec));
   1.200 +int evTouchIdleTimer __P((evContext, evTimerID));
   1.201 +
   1.202 +/* ev_waits.c */
   1.203 +#define evWaitFor	__evWaitFor
   1.204 +#define evDo		__evDo
   1.205 +#define evUnwait	__evUnwait
   1.206 +#define evDefer		__evDefer
   1.207 +
   1.208 +int evWaitFor __P((evContext, const void *, evWaitFunc, void *, evWaitID *));
   1.209 +int evDo __P((evContext, const void *));
   1.210 +int evUnwait __P((evContext, evWaitID));
   1.211 +int evDefer __P((evContext, evWaitFunc, void *));
   1.212 +
   1.213 +#ifdef __EVENTLIB_P_DEFINED
   1.214 +# undef __P
   1.215 +#endif
   1.216 +
   1.217 +#endif /*_EVENTLIB_H*/

mercurial