1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun #include <linux/module.h> 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun union ull_union { 5*4882a593Smuzhiyun unsigned long long ull; 6*4882a593Smuzhiyun struct { 7*4882a593Smuzhiyun unsigned int high; 8*4882a593Smuzhiyun unsigned int low; 9*4882a593Smuzhiyun } ui; 10*4882a593Smuzhiyun }; 11*4882a593Smuzhiyun __ucmpdi2(unsigned long long a,unsigned long long b)12*4882a593Smuzhiyunint __ucmpdi2(unsigned long long a, unsigned long long b) 13*4882a593Smuzhiyun { 14*4882a593Smuzhiyun union ull_union au = {.ull = a}; 15*4882a593Smuzhiyun union ull_union bu = {.ull = b}; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun if (au.ui.high < bu.ui.high) 18*4882a593Smuzhiyun return 0; 19*4882a593Smuzhiyun else if (au.ui.high > bu.ui.high) 20*4882a593Smuzhiyun return 2; 21*4882a593Smuzhiyun if (au.ui.low < bu.ui.low) 22*4882a593Smuzhiyun return 0; 23*4882a593Smuzhiyun else if (au.ui.low > bu.ui.low) 24*4882a593Smuzhiyun return 2; 25*4882a593Smuzhiyun return 1; 26*4882a593Smuzhiyun } 27