[PATCH] drivescan/misc: arch stuff
[disktools.git] / arch-ppc.h
1 #ifndef ARCH_PPC_H
2 #define ARCH_PPH_H
3
4 static int arch = arch_ppc;
5
6 #define BITS_PER_LONG   (32)
7
8 #ifndef __NR_ioprio_set
9 #define __NR_ioprio_set         273
10 #define __NR_ioprio_get         274
11 #endif
12
13 #ifndef __NR_fadvise64
14 #define __NR_fadvise64          233
15 #endif
16
17 #define nop     do { } while (0)
18
19 static inline int __ilog2(unsigned long bitmask)
20 {
21         int lz;
22
23         asm ("cntlzw %0,%1" : "=r" (lz) : "r" (bitmask));
24         return 31 - lz;
25 }
26
27 static inline int ffz(unsigned long bitmask)
28 {
29         if ((bitmask = ~bitmask) == 0)
30                 return 32;
31         return  __ilog2(bitmask & -bitmask);
32 }
33
34 #endif