| Heiko Carstens | 5075bac | 2009-07-07 16:37:09 +0200 | [diff] [blame] | 1 | #include <linux/module.h> | 
 | 2 |  | 
 | 3 | union ull_union { | 
 | 4 | 	unsigned long long ull; | 
 | 5 | 	struct { | 
 | 6 | 		unsigned int high; | 
 | 7 | 		unsigned int low; | 
 | 8 | 	} ui; | 
 | 9 | }; | 
 | 10 |  | 
 | 11 | int __ucmpdi2(unsigned long long a, unsigned long long b) | 
 | 12 | { | 
 | 13 | 	union ull_union au = {.ull = a}; | 
 | 14 | 	union ull_union bu = {.ull = b}; | 
 | 15 |  | 
 | 16 | 	if (au.ui.high < bu.ui.high) | 
 | 17 | 		return 0; | 
 | 18 | 	else if (au.ui.high > bu.ui.high) | 
 | 19 | 		return 2; | 
 | 20 | 	if (au.ui.low < bu.ui.low) | 
 | 21 | 		return 0; | 
 | 22 | 	else if (au.ui.low > bu.ui.low) | 
 | 23 | 		return 2; | 
 | 24 | 	return 1; | 
 | 25 | } | 
 | 26 | EXPORT_SYMBOL(__ucmpdi2); |