source: MondoRescue/branches/3.3/mindi-busybox/libbb/kernel_version.c@ 3865

Last change on this file since 3865 was 3621, checked in by Bruno Cornec, 10 years ago

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

File size: 818 bytes
Line 
1/* vi: set sw=4 ts=4: */
2/*
3 * Utility routines.
4 *
5 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
6 *
7 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
8 */
9
10#include "libbb.h"
11/* After libbb.h, since it needs sys/types.h on some systems */
12#include <sys/utsname.h> /* for uname(2) */
13
14
15/* Returns current kernel version encoded as major*65536 + minor*256 + patch,
16 * so, for example, to check if the kernel is greater than 2.2.11:
17 *
18 * if (get_linux_version_code() > KERNEL_VERSION(2,2,11)) { <stuff> }
19 */
20int FAST_FUNC get_linux_version_code(void)
21{
22 struct utsname name;
23 char *t;
24 int i, r;
25
26 uname(&name); /* never fails */
27 t = name.release;
28 r = 0;
29 for (i = 0; i < 3; i++) {
30 t = strtok(t, ".");
31 r = r * 256 + (t ? atoi(t) : 0);
32 t = NULL;
33 }
34 return r;
35}
Note: See TracBrowser for help on using the repository browser.