/
faio.h
72 lines (60 loc) · 2.17 KB
/
faio.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
* Copyright (c) 2012, Ben Noordhuis <info@bnoordhuis.nl>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef FAIO_H_
#define FAIO_H_
#if defined(__GNUC__)
#define FAIO_ATTRIBUTE_UNUSED __attribute__((unused))
#else
#define FAIO_ATTRIBUTE_UNUSED
#endif
struct faio_loop;
struct faio_handle;
FAIO_ATTRIBUTE_UNUSED
static int faio_init(struct faio_loop *loop);
FAIO_ATTRIBUTE_UNUSED
static void faio_fini(struct faio_loop *loop);
FAIO_ATTRIBUTE_UNUSED
static void faio_poll(struct faio_loop *loop, double timeout);
FAIO_ATTRIBUTE_UNUSED
static int faio_add(struct faio_loop *loop,
struct faio_handle *handle,
void (*cb)(struct faio_loop *loop,
struct faio_handle *handle,
unsigned int revents),
int fd,
unsigned int events);
FAIO_ATTRIBUTE_UNUSED
static int faio_mod(struct faio_loop *loop,
struct faio_handle *handle,
unsigned int events);
FAIO_ATTRIBUTE_UNUSED
static int faio_del(struct faio_loop *loop, struct faio_handle *handle);
#if defined(__linux__)
#include "faio-epoll.h"
#elif defined(__sun)
#include "faio-port.h"
#elif defined(__APPLE__) || \
defined(__DragonFly__) || \
defined(__FreeBSD__) || \
defined(__NetBSD__) || \
defined(__OpenBSD__)
#include "faio-kqueue.h"
#else
#error "Platform not supported."
#endif
#undef FAIO_ATTRIBUTE_UNUSED
#undef FAIO_TIMESPEC_SUB
#endif /* FAIO_H_ */