jabberd2  2.2.17
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))
#define MIO_CHECK(m, t)   _mio_check(m, t)

Macro Definition Documentation

#define MIO_FUNCS

Definition at line 13 of file mio_kqueue.h.

#define MIO_FD_VARS

Definition at line 60 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 62 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)

Definition at line 68 of file mio_kqueue.h.

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

Definition at line 78 of file mio_kqueue.h.

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

Definition at line 80 of file mio_kqueue.h.

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

Definition at line 81 of file mio_kqueue.h.

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

Definition at line 82 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)

Definition at line 84 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)

Definition at line 98 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)

Definition at line 107 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)

Definition at line 116 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)

Definition at line 125 of file mio_kqueue.h.

#define MIO_INIT_ITERATOR (   iter)    int iter;

Definition at line 134 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 137 of file mio_kqueue.h.

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

Definition at line 140 of file mio_kqueue.h.

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

Definition at line 141 of file mio_kqueue.h.

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

Definition at line 143 of file mio_kqueue.h.

#define MIO_CHECK (   m,
 
)    _mio_check(m, t)

Definition at line 145 of file mio_kqueue.h.