[PATCH] fio: better check_str() setup
[disktools.git] / arch.h
CommitLineData
fd11d7af
JA
1#ifndef ARCH_H
2#define ARCH_H
3
6b2a251b
JA
4enum {
5 arch_x86_64,
6 arch_i386,
7 arch_ppc,
8 arch_ia64,
9 arch_s390,
10 arch_alpha,
11};
12
2fa6471f
JA
13static inline unsigned long generic_ffz(unsigned long word)
14{
e79c9259 15 unsigned int i;
2fa6471f
JA
16
17 for (i = 0; i < sizeof(word) * 8; i++)
18 if ((word & (1UL << i)) == 0)
19 return i;
20
21 return -1;
22}
23
fd11d7af 24#if defined(__i386__)
f41ef3f6 25#include "arch-x86.h"
fd11d7af 26#elif defined(__x86_64__)
f41ef3f6 27#include "arch-x86_64.h"
fd11d7af 28#elif defined(__powerpc__) || defined(__powerpc64__)
f41ef3f6 29#include "arch-ppc.h"
fd11d7af 30#elif defined(__ia64__)
f41ef3f6 31#include "arch-ia64.h"
fd11d7af 32#elif defined(__alpha__)
f41ef3f6 33#include "arch-alpha.h"
fd11d7af 34#elif defined(__s390x__) || defined(__s390__)
f41ef3f6 35#include "arch-s390.h"
fd11d7af
JA
36#else
37#error "Unsupported arch"
38#endif
39
98e2070c
JA
40#define BITS_PER_LONG (__WORDSIZE)
41
27c32a38
JA
42#ifndef BLKGETSIZE64
43#define BLKGETSIZE64 _IOR(0x12,114,size_t)
44#endif
45
46static inline int ioprio_set(int which, int who, int ioprio)
47{
48 return syscall(__NR_ioprio_set, which, who, ioprio);
49}
50
51/*
52 * we want fadvise64 really, but it's so tangled... later
53 */
54static inline int fadvise(int fd, loff_t offset, size_t len, int advice)
55{
56#if 0
57 return syscall(__NR_fadvise64, fd, offset, offset >> 32, len, advice);
58#else
59 return posix_fadvise(fd, (off_t) offset, len, advice);
60#endif
61}
62
63enum {
64 IOPRIO_WHO_PROCESS = 1,
65 IOPRIO_WHO_PGRP,
66 IOPRIO_WHO_USER,
67};
68
69#define IOPRIO_CLASS_SHIFT 13
70
fd11d7af 71#endif