[BACK]Return to eventlib_p.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libc / isc

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/lib/libc/isc/eventlib_p.h between version 1.1 and 1.2

version 1.1, 2004/05/20 19:34:32 version 1.2, 2008/06/21 20:41:48
Line 1 
Line 1 
 /*      $NetBSD$        */  /*      $NetBSD$        */
   
 /*  /*
  * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")   * Copyright (c) 2005 by Internet Systems Consortium, Inc. ("ISC")
  * Copyright (c) 1995-1999 by Internet Software Consortium   * Copyright (c) 1995-1999 by Internet Software Consortium
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
Line 17 
Line 17 
  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.   * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */   */
   
 /* eventlib_p.h - private interfaces for eventlib  /*! \file
  * vix 09sep95 [initial]   * \brief private interfaces for eventlib
    * \author vix 09sep95 [initial]
  *   *
  * Id: eventlib_p.h,v 1.3.2.1.4.1 2004/03/09 08:33:43 marka Exp   * Id: eventlib_p.h,v 1.9 2006/03/09 23:57:56 marka Exp
  */   */
   
 #ifndef _EVENTLIB_P_H  #ifndef _EVENTLIB_P_H
Line 47 
Line 48 
 #define EV_MASK_ALL     (EV_READ | EV_WRITE | EV_EXCEPT)  #define EV_MASK_ALL     (EV_READ | EV_WRITE | EV_EXCEPT)
 #define EV_ERR(e)               return (errno = (e), -1)  #define EV_ERR(e)               return (errno = (e), -1)
 #define OK(x)           if ((x) < 0) EV_ERR(errno); else (void)NULL  #define OK(x)           if ((x) < 0) EV_ERR(errno); else (void)NULL
   #define OKFREE(x, y)    if ((x) < 0) { FREE((y)); EV_ERR(errno); } \
                           else (void)NULL
   
 #define NEW(p)          if (((p) = memget(sizeof *(p))) != NULL) \  #define NEW(p)          if (((p) = memget(sizeof *(p))) != NULL) \
                                 FILL(p); \                                  FILL(p); \
Line 65 
Line 68 
 #define FILL(p)  #define FILL(p)
 #endif  #endif
   
   #ifdef USE_POLL
   #ifdef HAVE_STROPTS_H
   #include <stropts.h>
   #endif
   #include <poll.h>
   #endif /* USE_POLL */
   
 typedef struct evConn {  typedef struct evConn {
         evConnFunc      func;          evConnFunc      func;
         void *          uap;          void *          uap;
         int             fd;          int             fd;
         int             flags;          int             flags;
 #define EV_CONN_LISTEN          0x0001          /* Connection is a listener. */  #define EV_CONN_LISTEN          0x0001          /*%< Connection is a listener. */
 #define EV_CONN_SELECTED        0x0002          /* evSelectFD(conn->file). */  #define EV_CONN_SELECTED        0x0002          /*%< evSelectFD(conn->file). */
 #define EV_CONN_BLOCK           0x0004          /* Listener fd was blocking. */  #define EV_CONN_BLOCK           0x0004          /*%< Listener fd was blocking. */
         evFileID        file;          evFileID        file;
         struct evConn * prev;          struct evConn * prev;
         struct evConn * next;          struct evConn * next;
Line 119  typedef struct evStream {
Line 129  typedef struct evStream {
         evFileID        file;          evFileID        file;
         evTimerID       timer;          evTimerID       timer;
         int             flags;          int             flags;
 #define EV_STR_TIMEROK  0x0001  /* IFF timer valid. */  #define EV_STR_TIMEROK  0x0001  /*%< IFF timer valid. */
         int             fd;          int             fd;
         struct iovec *  iovOrig;          struct iovec *  iovOrig;
         int             iovOrigCount;          int             iovOrigCount;
Line 168  typedef struct evEvent_p {
Line 178  typedef struct evEvent_p {
         } u;          } u;
 } evEvent_p;  } evEvent_p;
   
   #ifdef USE_POLL
   typedef struct {
           void            *ctx;   /* pointer to the evContext_p   */
           uint32_t        type;   /* READ, WRITE, EXCEPT, nonblk  */
           uint32_t        result; /* 1 => revents, 0 => events    */
   } __evEmulMask;
   
   #define emulMaskInit(ctx, field, ev, lastnext) \
           ctx->field.ctx = ctx; \
           ctx->field.type = ev; \
           ctx->field.result = lastnext;
   
   extern short    *__fd_eventfield(int fd, __evEmulMask *maskp);
   extern short    __poll_event(__evEmulMask *maskp);
   extern void             __fd_clr(int fd, __evEmulMask *maskp);
   extern void             __fd_set(int fd, __evEmulMask *maskp);
   
   #undef  FD_ZERO
   #define FD_ZERO(maskp)
   
   #undef  FD_SET
   #define FD_SET(fd, maskp) \
           __fd_set(fd, maskp)
   
   #undef  FD_CLR
   #define FD_CLR(fd, maskp) \
           __fd_clr(fd, maskp)
   
   #undef  FD_ISSET
   #define FD_ISSET(fd, maskp) \
           ((*__fd_eventfield(fd, maskp) & __poll_event(maskp)) != 0)
   
   #endif /* USE_POLL */
   
 typedef struct {  typedef struct {
         /* Global. */          /* Global. */
         const evEvent_p *cur;          const evEvent_p *cur;
Line 179  typedef struct {
Line 223  typedef struct {
         LIST(evAccept)  accepts;          LIST(evAccept)  accepts;
         /* Files. */          /* Files. */
         evFile          *files, *fdNext;          evFile          *files, *fdNext;
   #ifndef USE_POLL
         fd_set          rdLast, rdNext;          fd_set          rdLast, rdNext;
         fd_set          wrLast, wrNext;          fd_set          wrLast, wrNext;
         fd_set          exLast, exNext;          fd_set          exLast, exNext;
         fd_set          nonblockBefore;          fd_set          nonblockBefore;
         int             fdMax, fdCount, highestFD;          int             fdMax, fdCount, highestFD;
         evFile          *fdTable[FD_SETSIZE];          evFile          *fdTable[FD_SETSIZE];
   #else
           struct pollfd   *pollfds;       /* Allocated as needed  */
           evFile          **fdTable;      /* Ditto                */
           int             maxnfds;        /* # elements in above  */
           int             firstfd;        /* First active fd      */
           int             fdMax;          /* Last active fd       */
           int             fdCount;        /* # fd:s with I/O      */
           int             highestFD;      /* max fd allowed by OS */
           __evEmulMask    rdLast, rdNext;
           __evEmulMask    wrLast, wrNext;
           __evEmulMask    exLast, exNext;
           __evEmulMask    nonblockBefore;
   #endif /* USE_POLL */
 #ifdef EVENTLIB_TIME_CHECKS  #ifdef EVENTLIB_TIME_CHECKS
         struct timespec lastSelectTime;          struct timespec lastSelectTime;
         int             lastFdCount;          int             lastFdCount;
Line 205  typedef struct {
Line 263  typedef struct {
 void evPrintf(const evContext_p *ctx, int level, const char *fmt, ...)  void evPrintf(const evContext_p *ctx, int level, const char *fmt, ...)
      ISC_FORMAT_PRINTF(3, 4);       ISC_FORMAT_PRINTF(3, 4);
   
   #ifdef USE_POLL
   extern int evPollfdRealloc(evContext_p *ctx, int pollfd_chunk_size, int fd);
   #endif /* USE_POLL */
   
 /* ev_timers.c */  /* ev_timers.c */
 #define evCreateTimers __evCreateTimers  #define evCreateTimers __evCreateTimers
 heap_context evCreateTimers(const evContext_p *);  heap_context evCreateTimers(const evContext_p *);
Line 216  void evDestroyTimers(const evContext_p *
Line 278  void evDestroyTimers(const evContext_p *
 evWait *evFreeWait(evContext_p *ctx, evWait *old);  evWait *evFreeWait(evContext_p *ctx, evWait *old);
   
 /* Global options */  /* Global options */
 int             __evOptMonoTime;  extern int      __evOptMonoTime;
   
 #endif /*_EVENTLIB_P_H*/  #endif /*_EVENTLIB_P_H*/

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

CVSweb <webmaster@jp.NetBSD.org>