os.h revision 2c0ecd28459b6a1b236c865defb5ef76ce8bfa02
1ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#ifndef FIO_OS_H
2ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define FIO_OS_H
3ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe
4ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#if defined(__linux__)
5ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#include "os-linux.h"
6ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#elif defined(__FreeBSD__)
7ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#include "os-freebsd.h"
82c0ecd28459b6a1b236c865defb5ef76ce8bfa02Jens Axboe#elif defined(__sun__)
92c0ecd28459b6a1b236c865defb5ef76ce8bfa02Jens Axboe#include "os-solaris.h"
10ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#else
11ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#error "unsupported os"
12ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#endif
13ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe
14ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#ifdef FIO_HAVE_LIBAIO
15ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#include <libaio.h>
16ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#endif
17ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe
18ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#ifdef FIO_HAVE_POSIXAIO
19ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#include <aio.h>
20ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#endif
21ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe
22ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#ifdef FIO_HAVE_SGIO
23ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#include <linux/fs.h>
24ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#include <scsi/sg.h>
25ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#endif
26ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe
27ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#ifndef FIO_HAVE_FADVISE
28ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define fadvise(fd, off, len, advice)	(0)
29ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe
30ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define POSIX_FADV_DONTNEED	(0)
31ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define POSIX_FADV_SEQUENTIAL	(0)
32ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define POSIX_FADV_RANDOM	(0)
33ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#endif /* FIO_HAVE_FADVISE */
34ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe
35ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#ifndef FIO_HAVE_CPU_AFFINITY
36ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define fio_setaffinity(td)		(0)
37ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define fio_getaffinity(pid, mask)	(0)
38ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#endif
39ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe
40ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#ifndef FIO_HAVE_IOPRIO
41ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define ioprio_set(which, who, prio)	(0)
42ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#endif
43ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe
442c0ecd28459b6a1b236c865defb5ef76ce8bfa02Jens Axboe#ifndef FIO_HAVE_ODIRECT
452c0ecd28459b6a1b236c865defb5ef76ce8bfa02Jens Axboe#define OS_O_DIRECT			(0)
462c0ecd28459b6a1b236c865defb5ef76ce8bfa02Jens Axboe#endif
472c0ecd28459b6a1b236c865defb5ef76ce8bfa02Jens Axboe
48ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboestruct thread_data;
49ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboeextern int fio_libaio_init(struct thread_data *);
50ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboeextern int fio_posixaio_init(struct thread_data *);
51ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboeextern int fio_syncio_init(struct thread_data *);
52ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboeextern int fio_mmapio_init(struct thread_data *);
53ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboeextern int fio_sgio_init(struct thread_data *);
548756e4d421722eaeb089067aeaaf317d05d53a57Jens Axboeextern int fio_spliceio_init(struct thread_data *);
55ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe
56ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#endif
57