3 * Copyright (c) International Business Machines Corp., 2003
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 * Paul Larson <plars@linuxtestproject.org>
26 * Compare a given kernel version against the current kernel version.
27 * If they are the same - return 0
28 * If the argument is > current kernel version - return positive int
29 * If the argument is < current kernel version - return negative int
37 #include <sys/utsname.h>
39 void get_kver(int *k1
, int *k2
, int *k3
)
45 extern char *strsep(); /* shut up some compilers */
50 r1
= strsep(&kver
, ".");
51 r2
= strsep(&kver
, ".");
52 r3
= strsep(&kver
, ".");
59 int tst_kvercmp(int r1
, int r2
, int r3
) {
63 get_kver(&a1
, &a2
, &a3
);
64 testver
= (r1
<< 16) + (r2
<< 8) + r3
;
65 currver
= (a1
<< 16) + (a2
<< 8) + a3
;
67 return currver
- testver
;