mirror of
https://github.com/ceph/ceph
synced 2024-12-17 08:57:28 +00:00
fcf6e9878b
get_linux_version() returns a version of the currently running kernel, encoded as in int, and is contained in common/linux_version.[ch]. Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
26 lines
418 B
C
26 lines
418 B
C
#include "common/linux_version.h"
|
|
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <sys/utsname.h>
|
|
|
|
int get_linux_version(void)
|
|
{
|
|
struct utsname ubuf;
|
|
int a, b, c;
|
|
int n;
|
|
|
|
if (uname(&ubuf) || strcmp(ubuf.sysname, "Linux"))
|
|
return 0;
|
|
|
|
n = sscanf(ubuf.release, "%d.%d.%d", &a, &b, &c);
|
|
switch (n) {
|
|
case 3:
|
|
return KERNEL_VERSION(a, b, c);
|
|
case 2:
|
|
return KERNEL_VERSION(a, b, 0);
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|