jabberd2  2.2.17
Macros
mio_epoll.h File Reference
#include <sys/epoll.h>

Go to the source code of this file.

Macros

#define MIO_FUNCS
#define MIO_FD_VARS   uint32_t events;
#define MIO_VARS
#define MIO_INIT_VARS(m)
#define MIO_FREE_VARS(m)
#define MIO_ALLOC_FD(m, rfd)   _mio_alloc_fd(m, rfd)
#define MIO_FREE_FD(m, mfd)   if(mfd)free(mfd)
#define MIO_REMOVE_FD(m, mfd)
#define MIO_CHECK(m, t)   _mio_poll(m, t)
#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_CAN_READ(m, iter)   (MIO(m)->res_event[iter].events & (EPOLLIN|EPOLLERR|EPOLLHUP))
#define MIO_CAN_WRITE(m, iter)   (MIO(m)->res_event[iter].events & EPOLLOUT)
#define MIO_CAN_FREE(m)   (!MIO(m)->defer_free)
#define MIO_INIT_ITERATOR(iter)   int iter
#define MIO_ITERATE_RESULTS(m, retval, iter)   for(MIO(m)->defer_free = 1, iter = 0; (iter < retval) || ((MIO(m)->defer_free = 0)); iter++)
#define MIO_ITERATOR_FD(m, iter)   (MIO(m)->res_event[iter].data.ptr)

Macro Definition Documentation

#define MIO_FUNCS

Definition at line 25 of file mio_epoll.h.

#define MIO_FD_VARS   uint32_t events;

Definition at line 50 of file mio_epoll.h.

#define MIO_VARS
Value:
int defer_free; \
int epoll_fd; \
struct epoll_event res_event[32];

Definition at line 53 of file mio_epoll.h.

#define MIO_INIT_VARS (   m)
Value:
do { \
MIO(m)->defer_free = 0; \
if ((MIO(m)->epoll_fd = epoll_create(maxfd)) < 0) \
{ \
mio_debug(ZONE,"unable to initialize epoll mio"); \
free(m); \
return NULL; \
} \
} while(0)

Definition at line 58 of file mio_epoll.h.

Referenced by _mio_new().

#define MIO_FREE_VARS (   m)
Value:
do { \
close(MIO(m)->epoll_fd); \
} while(0)

Definition at line 68 of file mio_epoll.h.

Referenced by _mio_free().

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

Definition at line 74 of file mio_epoll.h.

Referenced by _mio_setup_fd().

#define MIO_FREE_FD (   m,
  mfd 
)    if(mfd)free(mfd)

Definition at line 75 of file mio_epoll.h.

Referenced by _mio_accept(), _mio_close(), and _mio_run().

#define MIO_REMOVE_FD (   m,
  mfd 
)
Value:
do { \
struct epoll_event event; \
event.events = 0; \
event.data.u64 = 0; \
event.data.ptr = mfd; \
epoll_ctl(MIO(m)->epoll_fd, EPOLL_CTL_DEL, \
mfd->mio_fd.fd, &event); \
} while (0)

Definition at line 77 of file mio_epoll.h.

Referenced by _mio_accept(), and _mio_close().

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

Definition at line 87 of file mio_epoll.h.

Referenced by _mio_run().

#define MIO_SET_READ (   m,
  mfd 
)
Value:
do { \
struct epoll_event event; \
mfd->events |= EPOLLIN; \
event.events = mfd->events; \
event.data.u64 = 0; \
event.data.ptr = mfd; \
epoll_ctl(MIO(m)->epoll_fd, EPOLL_CTL_MOD, \
mfd->mio_fd.fd, &event); \
} while (0)

Definition at line 89 of file mio_epoll.h.

Referenced by _mio_read().

#define MIO_SET_WRITE (   m,
  mfd 
)
Value:
do { \
struct epoll_event event; \
mfd->events |= EPOLLOUT; \
event.events = mfd->events; \
event.data.u64 = 0; \
event.data.ptr = mfd; \
epoll_ctl(MIO(m)->epoll_fd, EPOLL_CTL_MOD, \
mfd->mio_fd.fd, &event); \
} while (0)

Definition at line 100 of file mio_epoll.h.

Referenced by _mio_connect(), and _mio_write().

#define MIO_UNSET_READ (   m,
  mfd 
)
Value:
do { \
struct epoll_event event; \
mfd->events &= ~EPOLLIN; \
event.events = mfd->events; \
event.data.u64 = 0; \
event.data.ptr = mfd; \
epoll_ctl(MIO(m)->epoll_fd, EPOLL_CTL_MOD, \
mfd->mio_fd.fd, &event); \
} while (0)

Definition at line 111 of file mio_epoll.h.

Referenced by _mio_run().

#define MIO_UNSET_WRITE (   m,
  mfd 
)
Value:
do { \
struct epoll_event event; \
mfd->events &= ~(EPOLLOUT); \
event.events = mfd->events; \
event.data.u64 = 0; \
event.data.ptr = mfd; \
epoll_ctl(MIO(m)->epoll_fd, EPOLL_CTL_MOD, \
mfd->mio_fd.fd, &event); \
} while (0)

Definition at line 121 of file mio_epoll.h.

Referenced by _mio__connect(), and _mio_run().

#define MIO_CAN_READ (   m,
  iter 
)    (MIO(m)->res_event[iter].events & (EPOLLIN|EPOLLERR|EPOLLHUP))

Definition at line 133 of file mio_epoll.h.

Referenced by _mio_run().

#define MIO_CAN_WRITE (   m,
  iter 
)    (MIO(m)->res_event[iter].events & EPOLLOUT)

Definition at line 136 of file mio_epoll.h.

Referenced by _mio_run().

#define MIO_CAN_FREE (   m)    (!MIO(m)->defer_free)

Definition at line 139 of file mio_epoll.h.

Referenced by _mio_close().

#define MIO_INIT_ITERATOR (   iter)    int iter

Definition at line 141 of file mio_epoll.h.

Referenced by _mio_run().

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

Definition at line 144 of file mio_epoll.h.

Referenced by _mio_run().

#define MIO_ITERATOR_FD (   m,
  iter 
)    (MIO(m)->res_event[iter].data.ptr)

Definition at line 147 of file mio_epoll.h.

Referenced by _mio_run().