jabberd2  2.3.3
Macros
mio_kqueue.h File Reference

Go to the source code of this file.

Macros

#define MIO_FUNCS
 
#define MIO_FD_VARS
 
#define MIO_VARS
 
#define MIO_INIT_VARS(m)
 
#define MIO_FREE_VARS(m)   close(MIO(m)->kq)
 
#define MIO_ALLOC_FD(m, rfd)   _mio_alloc_fd(m,rfd)
 
#define MIO_CAN_FREE(m)   (MIO(m)->nevents == 0)
 
#define MIO_FREE_FD(m, mfd)   _mio_free_fd(m, mfd)
 
#define MIO_REMOVE_FD(m, mfd)
 
#define MIO_SET_READ(m, mfd)
 
#define MIO_SET_WRITE(m, mfd)
 
#define MIO_UNSET_READ(m, mfd)
 
#define MIO_UNSET_WRITE(m, mfd)
 
#define MIO_INIT_ITERATOR(iter)   int iter;
 
#define MIO_ITERATE_RESULTS(m, retval, iter)   for(iter = 0; (iter < retval) || ((MIO(m)->nevents = 0)); iter++)
 
#define MIO_CAN_READ(m, iter)   (MIO((m))->events[(iter)].filter == EVFILT_READ)
 
#define MIO_CAN_WRITE(m, iter)   (MIO((m))->events[(iter)].filter == EVFILT_WRITE)
 
#define MIO_ITERATOR_FD(m, iter)   ((mio_fd_t)(MIO(m)->events[(iter)].udata))
 

Macro Definition Documentation

#define MIO_FUNCS

Definition at line 13 of file mio_kqueue.h.

#define MIO_FD_VARS

Definition at line 66 of file mio_kqueue.h.

#define MIO_VARS
Value:
int kq; \
int nevents; \
struct kevent events[32]; \
struct mio_priv_fd_st dummy;

Definition at line 68 of file mio_kqueue.h.

#define MIO_INIT_VARS (   m)
Value:
do { \
MIO(m)->nevents = 0; \
MIO(m)->dummy.type = type_CLOSED; \
if ((MIO(m)->kq = kqueue()) == -1) { \
mio_debug(ZONE,"internal error creating kqueue (%d)", errno); \
return NULL; \
} \
} while(0)
#define mio_debug
Definition: mio_impl.h:80
#define MIO(m)
Definition: mio_impl.h:71
#define ZONE
Definition: mio_impl.h:76

Definition at line 74 of file mio_kqueue.h.

#define MIO_FREE_VARS (   m)    close(MIO(m)->kq)

Definition at line 84 of file mio_kqueue.h.

#define MIO_ALLOC_FD (   m,
  rfd 
)    _mio_alloc_fd(m,rfd)

Definition at line 86 of file mio_kqueue.h.

#define MIO_CAN_FREE (   m)    (MIO(m)->nevents == 0)

Definition at line 87 of file mio_kqueue.h.

#define MIO_FREE_FD (   m,
  mfd 
)    _mio_free_fd(m, mfd)

Definition at line 88 of file mio_kqueue.h.

#define MIO_REMOVE_FD (   m,
  mfd 
)
Value:
do { \
struct kevent events[2]; \
EV_SET(&events[0], mfd->mio_fd.fd, EVFILT_READ, EV_DELETE, 0, 0, mfd); \
EV_SET(&events[1], mfd->mio_fd.fd, EVFILT_WRITE, EV_DELETE, 0, 0, mfd); \
if (kevent(MIO(m)->kq, events, sizeof(events)/sizeof(events[0]), NULL, 0, NULL) == -1) { \
mio_debug(ZONE,"error deleting kevents on fd %d (%d)", mfd->mio_fd.fd, errno); \
} \
} while (0)
#define mio_debug
Definition: mio_impl.h:80
#define MIO(m)
Definition: mio_impl.h:71
#define ZONE
Definition: mio_impl.h:76

Definition at line 90 of file mio_kqueue.h.

#define MIO_SET_READ (   m,
  mfd 
)
Value:
do { \
struct kevent changelist; \
EV_SET(&changelist, mfd->mio_fd.fd, EVFILT_READ, EV_ENABLE, 0, 0, mfd); \
if (kevent(MIO(m)->kq, &changelist, 1, NULL, 0, NULL) == -1) { \
mio_debug(ZONE,"error setting kevent EVFILT_READ on fd %d (%d)", mfd->mio_fd.fd, errno); \
} \
} while (0)
#define mio_debug
Definition: mio_impl.h:80
#define MIO(m)
Definition: mio_impl.h:71
#define ZONE
Definition: mio_impl.h:76

Definition at line 104 of file mio_kqueue.h.

#define MIO_SET_WRITE (   m,
  mfd 
)
Value:
do { \
struct kevent changelist; \
EV_SET(&changelist, mfd->mio_fd.fd, EVFILT_WRITE, EV_ENABLE, 0, 0, mfd); \
if (kevent(MIO(m)->kq, &changelist, 1, NULL, 0, NULL) == -1) { \
mio_debug(ZONE,"error setting kevent EVFILT_WRITE on fd %d (%d)", mfd->mio_fd.fd, errno); \
} \
} while (0)
#define mio_debug
Definition: mio_impl.h:80
#define MIO(m)
Definition: mio_impl.h:71
#define ZONE
Definition: mio_impl.h:76

Definition at line 113 of file mio_kqueue.h.

#define MIO_UNSET_READ (   m,
  mfd 
)
Value:
do { \
struct kevent changelist; \
EV_SET(&changelist, mfd->mio_fd.fd, EVFILT_READ, EV_DISABLE, 0, 0, mfd); \
if (kevent(MIO(m)->kq, &changelist, 1, NULL, 0, NULL) == -1) { \
mio_debug(ZONE,"error setting kevent EVFILT_READ on fd %d (%d)", mfd->mio_fd.fd, errno); \
} \
} while (0)
#define mio_debug
Definition: mio_impl.h:80
#define MIO(m)
Definition: mio_impl.h:71
#define ZONE
Definition: mio_impl.h:76

Definition at line 122 of file mio_kqueue.h.

#define MIO_UNSET_WRITE (   m,
  mfd 
)
Value:
do { \
struct kevent changelist; \
EV_SET(&changelist, mfd->mio_fd.fd, EVFILT_WRITE, EV_DISABLE, 0, 0, mfd); \
if (kevent(MIO(m)->kq, &changelist, 1, NULL, 0, NULL) == -1) { \
mio_debug(ZONE,"error setting kevent EVFILT_WRITE on fd %d (%d)", mfd->mio_fd.fd, errno); \
} \
} while (0)
#define mio_debug
Definition: mio_impl.h:80
#define MIO(m)
Definition: mio_impl.h:71
#define ZONE
Definition: mio_impl.h:76

Definition at line 131 of file mio_kqueue.h.

#define MIO_INIT_ITERATOR (   iter)    int iter;

Definition at line 140 of file mio_kqueue.h.

#define MIO_ITERATE_RESULTS (   m,
  retval,
  iter 
)    for(iter = 0; (iter < retval) || ((MIO(m)->nevents = 0)); iter++)

Definition at line 143 of file mio_kqueue.h.

#define MIO_CAN_READ (   m,
  iter 
)    (MIO((m))->events[(iter)].filter == EVFILT_READ)

Definition at line 146 of file mio_kqueue.h.

#define MIO_CAN_WRITE (   m,
  iter 
)    (MIO((m))->events[(iter)].filter == EVFILT_WRITE)

Definition at line 147 of file mio_kqueue.h.

#define MIO_ITERATOR_FD (   m,
  iter 
)    ((mio_fd_t)(MIO(m)->events[(iter)].udata))

Definition at line 149 of file mio_kqueue.h.