[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/app/busybox/src/libbb/kernel_version.c b/ap/app/busybox/src/libbb/kernel_version.c
new file mode 100644
index 0000000..738ed02
--- /dev/null
+++ b/ap/app/busybox/src/libbb/kernel_version.c
@@ -0,0 +1,35 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Utility routines.
+ *
+ * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
+ *
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
+ */
+
+#include "libbb.h"
+/* After libbb.h, since it needs sys/types.h on some systems */
+#include <sys/utsname.h>  /* for uname(2) */
+
+
+/* Returns current kernel version encoded as major*65536 + minor*256 + patch,
+ * so, for example,  to check if the kernel is greater than 2.2.11:
+ *
+ *     if (get_linux_version_code() > KERNEL_VERSION(2,2,11)) { <stuff> }
+ */
+int FAST_FUNC get_linux_version_code(void)
+{
+	struct utsname name;
+	char *s, *t;
+	int i, r;
+
+	uname(&name); /* never fails */
+	s = name.release;
+	r = 0;
+	for (i = 0; i < 3; i++) {
+		t = strtok(s, ".");
+		r = r * 256 + (t ? atoi(t) : 0);
+		s = NULL;
+	}
+	return r;
+}