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