2007-11-06 02:40:13 +01:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <sys/utsname.h>
|
|
|
|
|
2016-03-09 11:49:42 +01:00
|
|
|
#include "c.h"
|
2007-11-06 02:40:13 +01:00
|
|
|
#include "linux_version.h"
|
|
|
|
|
2011-06-20 13:48:40 +02:00
|
|
|
int get_linux_version (void)
|
2007-11-06 02:40:13 +01:00
|
|
|
{
|
|
|
|
static int kver = -1;
|
|
|
|
struct utsname uts;
|
2016-03-09 11:49:42 +01:00
|
|
|
int x = 0, y = 0, z = 0;
|
2011-06-20 13:48:40 +02:00
|
|
|
int n;
|
2007-11-06 02:40:13 +01:00
|
|
|
|
|
|
|
if (kver != -1)
|
|
|
|
return kver;
|
2016-03-09 11:49:42 +01:00
|
|
|
if (uname(&uts))
|
2011-06-20 13:48:40 +02:00
|
|
|
return kver = 0;
|
2007-11-06 02:40:13 +01:00
|
|
|
|
2016-03-09 11:49:42 +01:00
|
|
|
n = sscanf(uts.release, "%d.%d.%d", &x, &y, &z);
|
2011-06-20 13:48:40 +02:00
|
|
|
if (n < 1 || n > 3)
|
|
|
|
return kver = 0;
|
|
|
|
|
2017-01-02 11:32:24 +01:00
|
|
|
return kver = KERNEL_VERSION(x, y, z);
|
2007-11-06 02:40:13 +01:00
|
|
|
}
|