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*/