#ifndef QUEUE_H
|
|
#define QUEUE_H
|
|
|
|
#include <stddef.h>
|
|
|
|
#ifdef __linux__
|
|
#include <sys/epoll.h>
|
|
|
|
typedef struct epoll_event queue_event;
|
|
#else
|
|
#include <sys/types.h>
|
|
#include <sys/event.h>
|
|
#include <sys/time.h>
|
|
|
|
typedef struct kevent queue_event;
|
|
#endif
|
|
|
|
enum queue_event_type {
|
|
QUEUE_EVENT_IN,
|
|
QUEUE_EVENT_OUT,
|
|
};
|
|
|
|
int queue_create(void);
|
|
int queue_add_fd(int, int, enum queue_event_type, int, const void *);
|
|
int queue_mod_fd(int, int, enum queue_event_type, const void *);
|
|
int queue_rem_fd(int, int);
|
|
ssize_t queue_wait(int, queue_event *, size_t);
|
|
|
|
void *queue_event_get_data(const queue_event *);
|
|
|
|
int queue_event_is_error(const queue_event *e);
|
|
|
|
#endif /* QUEUE_H */
|