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
24