summaryrefslogtreecommitdiff
path: root/usr/src/lib/libresolv2/include/isc/eventlib.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libresolv2/include/isc/eventlib.h')
-rw-r--r--usr/src/lib/libresolv2/include/isc/eventlib.h209
1 files changed, 209 insertions, 0 deletions
diff --git a/usr/src/lib/libresolv2/include/isc/eventlib.h b/usr/src/lib/libresolv2/include/isc/eventlib.h
new file mode 100644
index 0000000000..92988f63ca
--- /dev/null
+++ b/usr/src/lib/libresolv2/include/isc/eventlib.h
@@ -0,0 +1,209 @@
+/*
+ * Copyright 1997-2002 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * Copyright (c) 1995-1999 by Internet Software Consortium
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/* eventlib.h - exported interfaces for eventlib
+ * vix 09sep95 [initial]
+ *
+ * $Id: eventlib.h,v 1.23 2001/05/29 05:47:09 marka Exp $
+ */
+
+#pragma ident "%Z%%M% %I% %E% SMI"
+
+#ifndef _EVENTLIB_H
+#define _EVENTLIB_H
+
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <sys/time.h>
+#include <stdio.h>
+
+#ifndef __P
+# define __EVENTLIB_P_DEFINED
+# ifdef __STDC__
+# define __P(x) x
+# else
+# define __P(x) ()
+# endif
+#endif
+
+/* In the absence of branded types... */
+typedef struct { void *opaque; } evConnID;
+typedef struct { void *opaque; } evFileID;
+typedef struct { void *opaque; } evStreamID;
+typedef struct { void *opaque; } evTimerID;
+typedef struct { void *opaque; } evWaitID;
+typedef struct { void *opaque; } evContext;
+typedef struct { void *opaque; } evEvent;
+
+#define evInitID(id) ((id)->opaque = NULL)
+#define evTestID(id) ((id).opaque != NULL)
+
+typedef void (*evConnFunc)__P((evContext ctx, void *uap, int fd,
+ const void *la, int lalen,
+ const void *ra, int ralen));
+typedef void (*evFileFunc)__P((evContext ctx, void *uap, int fd, int evmask));
+typedef void (*evStreamFunc)__P((evContext ctx, void *uap, int fd, int bytes));
+typedef void (*evTimerFunc)__P((evContext ctx, void *uap,
+ struct timespec due, struct timespec inter));
+typedef void (*evWaitFunc)__P((evContext ctx, void *uap, const void *tag));
+
+typedef struct { unsigned char mask[256/8]; } evByteMask;
+#define EV_BYTEMASK_BYTE(b) ((b) / 8)
+#define EV_BYTEMASK_MASK(b) (1 << ((b) % 8))
+#define EV_BYTEMASK_SET(bm, b) \
+ ((bm).mask[EV_BYTEMASK_BYTE(b)] |= EV_BYTEMASK_MASK(b))
+#define EV_BYTEMASK_CLR(bm, b) \
+ ((bm).mask[EV_BYTEMASK_BYTE(b)] &= ~EV_BYTEMASK_MASK(b))
+#define EV_BYTEMASK_TST(bm, b) \
+ ((bm).mask[EV_BYTEMASK_BYTE(b)] & EV_BYTEMASK_MASK(b))
+
+#define EV_POLL 1
+#define EV_WAIT 2
+#define EV_NULL 4
+
+#define EV_READ 1
+#define EV_WRITE 2
+#define EV_EXCEPT 4
+
+/* eventlib.c */
+#define evCreate __evCreate
+#define evSetDebug __evSetDebug
+#define evDestroy __evDestroy
+#define evGetNext __evGetNext
+#define evDispatch __evDispatch
+#define evDrop __evDrop
+#define evMainLoop __evMainLoop
+#define evHighestFD __evHighestFD
+
+int evCreate __P((evContext *ctx));
+void evSetDebug __P((evContext ctx, int lev, FILE *out));
+int evDestroy __P((evContext ctx));
+int evGetNext __P((evContext ctx, evEvent *ev, int options));
+int evDispatch __P((evContext ctx, evEvent ev));
+void evDrop __P((evContext ctx, evEvent ev));
+int evMainLoop __P((evContext ctx));
+int evHighestFD __P((evContext ctx));
+
+#ifdef SUNW_POLL
+extern void evPollfdAdd(evContext ctx, int pollfd_chunk_size, int fd,
+ short events);
+extern void evPollfdDel(evContext ctx, int fd);
+#endif /* SUNW_POLL */
+
+/* ev_connects.c */
+#define evListen __evListen
+#define evConnect __evConnect
+#define evCancelConn __evCancelConn
+#define evHold __evHold
+#define evUnhold __evUnhold
+#define evTryAccept __evTryAccept
+
+int evListen __P((evContext ctx, int fd, int maxconn,
+ evConnFunc func, void *uap, evConnID *id));
+int evConnect __P((evContext ctx, int fd, const void *ra, int ralen,
+ evConnFunc func, void *uap, evConnID *id));
+int evCancelConn __P((evContext ctx, evConnID id));
+int evHold __P((evContext, evConnID));
+int evUnhold __P((evContext, evConnID));
+int evTryAccept __P((evContext, evConnID, int *));
+
+/* ev_files.c */
+#define evSelectFD __evSelectFD
+#define evDeselectFD __evDeselectFD
+
+int evSelectFD __P((evContext ctx, int fd, int eventmask,
+ evFileFunc func, void *uap, evFileID *id));
+int evDeselectFD __P((evContext ctx, evFileID id));
+
+/* ev_streams.c */
+#define evConsIovec __evConsIovec
+#define evWrite __evWrite
+#define evRead __evRead
+#define evTimeRW __evTimeRW
+#define evUntimeRW __evUntimeRW
+#define evCancelRW __evCancelRW
+
+struct iovec evConsIovec __P((void *buf, size_t cnt));
+int evWrite __P((evContext ctx, int fd, const struct iovec *iov, int cnt,
+ evStreamFunc func, void *uap, evStreamID *id));
+int evRead __P((evContext ctx, int fd, const struct iovec *iov, int cnt,
+ evStreamFunc func, void *uap, evStreamID *id));
+int evTimeRW __P((evContext ctx, evStreamID id, evTimerID timer));
+int evUntimeRW __P((evContext ctx, evStreamID id));
+int evCancelRW __P((evContext ctx, evStreamID id));
+
+/* ev_timers.c */
+#define evConsTime __evConsTime
+#define evAddTime __evAddTime
+#define evSubTime __evSubTime
+#define evCmpTime __evCmpTime
+#define evTimeSpec __evTimeSpec
+#define evTimeVal __evTimeVal
+
+#define evNowTime __evNowTime
+#define evLastEventTime __evLastEventTime
+#define evSetTimer __evSetTimer
+#define evClearTimer __evClearTimer
+#define evResetTimer __evResetTimer
+#define evSetIdleTimer __evSetIdleTimer
+#define evClearIdleTimer __evClearIdleTimer
+#define evResetIdleTimer __evResetIdleTimer
+#define evTouchIdleTimer __evTouchIdleTimer
+
+struct timespec evConsTime __P((time_t sec, long nsec));
+struct timespec evAddTime __P((struct timespec add1, struct timespec add2));
+struct timespec evSubTime __P((struct timespec minu, struct timespec subtra));
+struct timespec evNowTime __P((void));
+struct timespec evLastEventTime __P((evContext));
+struct timespec evTimeSpec __P((struct timeval));
+struct timeval evTimeVal __P((struct timespec));
+int evCmpTime __P((struct timespec a, struct timespec b));
+int evSetTimer __P((evContext ctx, evTimerFunc func, void *uap,
+ struct timespec due, struct timespec inter,
+ evTimerID *id));
+int evClearTimer __P((evContext ctx, evTimerID id));
+int evResetTimer __P((evContext, evTimerID, evTimerFunc, void *,
+ struct timespec, struct timespec));
+int evSetIdleTimer __P((evContext, evTimerFunc, void *, struct timespec,
+ evTimerID *));
+int evClearIdleTimer __P((evContext, evTimerID));
+int evResetIdleTimer __P((evContext, evTimerID, evTimerFunc, void *,
+ struct timespec));
+int evTouchIdleTimer __P((evContext, evTimerID));
+
+/* ev_waits.c */
+#define evWaitFor __evWaitFor
+#define evDo __evDo
+#define evUnwait __evUnwait
+#define evDefer __evDefer
+
+int evWaitFor __P((evContext ctx, const void *tag, evWaitFunc func, void *uap,
+ evWaitID *id));
+int evDo __P((evContext ctx, const void *tag));
+int evUnwait __P((evContext ctx, evWaitID id));
+int evDefer __P((evContext, evWaitFunc, void *));
+
+#ifdef __EVENTLIB_P_DEFINED
+# undef __P
+#endif
+
+#endif /*_EVENTLIB_H*/