2007-11-06 02:40:13 +01:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <sys/utsname.h>
|
|
|
|
|
|
|
|
#include "linux_version.h"
|
|
|
|
|
|
|
|
int
|
|
|
|
get_linux_version (void)
|
|
|
|
{
|
|
|
|
static int kver = -1;
|
|
|
|
struct utsname uts;
|
|
|
|
int major;
|
|
|
|
int minor;
|
|
|
|
int teeny;
|
|
|
|
|
|
|
|
if (kver != -1)
|
|
|
|
return kver;
|
|
|
|
if (uname (&uts))
|
|
|
|
kver = 0;
|
2011-06-06 12:35:26 +02:00
|
|
|
else if (sscanf (uts.release, "%d.%d.%d", &major, &minor, &teeny) == 3)
|
2007-11-06 02:40:13 +01:00
|
|
|
kver = KERNEL_VERSION (major, minor, teeny);
|
2011-06-06 12:35:26 +02:00
|
|
|
else if (sscanf (uts.release, "%d.%d", &major, &minor) == 2)
|
|
|
|
kver = KERNEL_VERSION (major, minor, 0);
|
2007-11-06 02:40:13 +01:00
|
|
|
|
|
|
|
return kver;
|
|
|
|
}
|