added mtd driver
[linux-2.4.git] / include / asm-ppc / div64.h
1 #ifndef __PPC_DIV64
2 #define __PPC_DIV64
3
4 #include <linux/types.h>
5
6 extern u32 __div64_32(u64 *dividend, u32 div);
7
8 #define do_div(n, div)  ({                      \
9         u64 __n = (n);                          \
10         u32 __d = (div);                        \
11         u32 __q, __r;                           \
12         if ((__n >> 32) == 0) {                 \
13                 __q = (u32)__n / __d;           \
14                 __r = (u32)__n - __q * __d;     \
15                 (n) = __q;                      \
16         } else {                                \
17                 __r = __div64_32(&__n, __d);    \
18                 (n) = __n;                      \
19         }                                       \
20         __r;                                    \
21 })
22
23 #endif