26 lines
448 B
C
26 lines
448 B
C
|
#include <linux/module.h>
|
||
|
|
||
|
union ull_union {
|
||
|
unsigned long long ull;
|
||
|
struct {
|
||
|
unsigned int high;
|
||
|
unsigned int low;
|
||
|
} ui;
|
||
|
};
|
||
|
|
||
|
int __ucmpdi2(unsigned long long a, unsigned long long b)
|
||
|
{
|
||
|
union ull_union au = {.ull = a};
|
||
|
union ull_union bu = {.ull = b};
|
||
|
|
||
|
if (au.ui.high < bu.ui.high)
|
||
|
return 0;
|
||
|
else if (au.ui.high > bu.ui.high)
|
||
|
return 2;
|
||
|
if (au.ui.low < bu.ui.low)
|
||
|
return 0;
|
||
|
else if (au.ui.low > bu.ui.low)
|
||
|
return 2;
|
||
|
return 1;
|
||
|
}
|