Commit | Line | Data |
---|---|---|
fd11d7af JA |
1 | #ifndef ARCH_H |
2 | #define ARCH_H | |
3 | ||
6b2a251b JA |
4 | enum { |
5 | arch_x86_64, | |
6 | arch_i386, | |
7 | arch_ppc, | |
8 | arch_ia64, | |
9 | arch_s390, | |
10 | arch_alpha, | |
11 | }; | |
12 | ||
2fa6471f JA |
13 | static inline unsigned long generic_ffz(unsigned long word) |
14 | { | |
15 | int i; | |
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 | ||
fd11d7af | 42 | #endif |