X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=arch%2Farch.h;h=3ee5ac43e563eb0b5e3c72576e18d8729139ce3c;hp=745bf3a4d0a6260dffc37b475e3b3479e966ba48;hb=5499f7ffa2e603edf571f339c513c5aeef57565c;hpb=317b95d07d4921d2594a1be6e014c9c2d062fe75 diff --git a/arch/arch.h b/arch/arch.h index 745bf3a4..3ee5ac43 100644 --- a/arch/arch.h +++ b/arch/arch.h @@ -1,31 +1,43 @@ #ifndef ARCH_H #define ARCH_H +#ifdef __WORDSIZE +#define BITS_PER_LONG __WORDSIZE +#else +#define BITS_PER_LONG 32 +#endif + enum { - arch_x86_64, + arch_x86_64 = 1, arch_i386, arch_ppc, arch_ia64, arch_s390, arch_alpha, -}; + arch_sparc, + arch_sparc64, + arch_arm, + arch_sh, + arch_hppa, + arch_mips, -static inline unsigned long generic_ffz(unsigned long word) -{ - unsigned int i; + arch_generic, - for (i = 0; i < sizeof(word) * 8; i++) - if ((word & (1UL << i)) == 0) - return i; + arch_nr, +}; - return -1; -} +enum { + ARCH_FLAG_1 = 1 << 0, + ARCH_FLAG_2 = 1 << 1, + ARCH_FLAG_3 = 1 << 2, + ARCH_FLAG_4 = 1 << 3, +}; #if defined(__i386__) #include "arch-x86.h" #elif defined(__x86_64__) #include "arch-x86_64.h" -#elif defined(__powerpc__) || defined(__powerpc64__) +#elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) #include "arch-ppc.h" #elif defined(__ia64__) #include "arch-ia64.h" @@ -33,10 +45,34 @@ static inline unsigned long generic_ffz(unsigned long word) #include "arch-alpha.h" #elif defined(__s390x__) || defined(__s390__) #include "arch-s390.h" +#elif defined(__sparc__) +#include "arch-sparc.h" +#elif defined(__sparc64__) +#include "arch-sparc64.h" +#elif defined(__arm__) +#include "arch-arm.h" +#elif defined(__mips__) || defined(__mips64__) +#include "arch-mips.h" +#elif defined(__sh__) +#include "arch-sh.h" +#elif defined(__hppa__) +#include "arch-hppa.h" +#else +#warning "Unknown architecture, attempting to use generic model." +#include "arch-generic.h" +#endif + +#ifdef ARCH_HAVE_FFZ +#define ffz(bitmask) arch_ffz(bitmask) #else -#error "Unsupported arch" +#include "../lib/ffz.h" #endif -#define BITS_PER_LONG (__WORDSIZE) +#ifndef ARCH_HAVE_INIT +static inline int arch_init(char *envp[]) +{ + return 0; +} +#endif #endif