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