/*
* Copyright (c) 2005 by Internet Systems Consortium, Inc. ("ISC")
* 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 ISC DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC 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.
*/
/*! \file
* \brief private interfaces for eventlib
* \author vix 09sep95 [initial]
*
* $Id: eventlib_p.h,v 1.9 2006/03/09 23:57:56 marka Exp $
*/
#ifndef _EVENTLIB_P_H
#define _EVENTLIB_P_H
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <isc/memcluster.h>
else (void)NULL
FILL(p); \
else \
(void)NULL;
return (-1); \
} else \
FILL(p)
#if EVENTLIB_DEBUG
#else
#define FILL(p)
#endif
#ifdef USE_POLL
#ifdef HAVE_STROPTS_H
#include <stropts.h>
#endif
#include <poll.h>
#endif /* USE_POLL */
typedef struct evConn {
void * uap;
int fd;
int flags;
} evConn;
typedef struct evAccept {
int fd;
union {
#ifndef NO_SOCKADDR_UN
#endif
} la;
union {
#ifndef NO_SOCKADDR_UN
#endif
} ra;
int ioErrno;
} evAccept;
typedef struct evFile {
void * uap;
int fd;
int eventmask;
int preemptive;
} evFile;
typedef struct evStream {
void * uap;
int flags;
int fd;
int iovOrigCount;
int iovCurCount;
int ioTotal;
int ioDone;
int ioErrno;
} evStream;
typedef struct evTimer {
void * uap;
int index;
int mode;
} evTimer;
typedef struct evWait {
void * uap;
const void * tag;
} evWait;
typedef struct evWaitList {
} evWaitList;
typedef struct evEvent_p {
union {
} u;
} evEvent_p;
#ifdef USE_POLL
typedef struct {
} __evEmulMask;
#endif /* USE_POLL */
typedef struct {
/* Global. */
/* Debugging. */
int debug;
/* Connections. */
/* Files. */
#ifndef USE_POLL
#else
#endif /* USE_POLL */
#ifdef EVENTLIB_TIME_CHECKS
int lastFdCount;
#endif
/* Streams. */
/* Timers. */
/* Waits. */
} evContext_p;
/* eventlib.c */
#ifdef USE_POLL
#endif /* USE_POLL */
/* ev_timers.c */
void evDestroyTimers(const evContext_p *);
/* ev_waits.c */
/* Global options */
extern int __evOptMonoTime;
#endif /*_EVENTLIB_P_H*/