1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00

refactoring: kernel_has_version() => kernel_get_version() + version_cmp()

This commit is contained in:
Steffen Vogel 2017-04-02 02:33:20 +02:00
parent 37498fc64d
commit fd51d7bac9
3 changed files with 10 additions and 12 deletions

View file

@ -11,6 +11,9 @@
#include <stdint.h>
/* Forward declarations */
struct version;
//#include <sys/capability.h>
/** Check if current process has capability \p cap.
@ -38,12 +41,8 @@ int kernel_set_nr_hugepages(int nr);
*/
int kernel_get_cmdline_param(const char *param, char *buf, size_t len);
/** Check if kernel is version is sufficient
*
* @retval 0 Kernel version is sufficient.
* @reval <>0 Kernel version is not sufficient.
*/
int kernel_has_version(int maj, int min);
/** Get the version of the kernel. */
int kernel_get_version(struct version *v);
/** Checks if a kernel module is loaded
*

View file

@ -87,19 +87,17 @@ int kernel_module_loaded(const char *module)
return ret;
}
int kernel_has_version(int maj, int min)
int kernel_get_version(struct version *v)
{
struct utsname uts;
struct version current;
struct version required = { maj, min };
if (uname(&uts) < 0)
return -1;
if (version_parse(uts.release, &current))
if (version_parse(uts.release, v))
return -1;
return version_cmp(&current, &required) < 0;
return 0;
}
int kernel_get_cmdline_param(const char *param, char *buf, size_t len)

View file

@ -89,7 +89,8 @@ int main(int argc, char *argv[])
BLD(MAG(__DATE__)), BLD(MAG(__TIME__)));
/* Checks system requirements*/
if (kernel_has_version(KERNEL_VERSION_MAJ, KERNEL_VERSION_MIN))
struct version kver, reqv = { KERNEL_VERSION_MAJ, KERNEL_VERSION_MIN };
if (kernel_get_version(&kver) == 0 && version_cmp(&kver, &reqv) < 0)
error("Your kernel version is to old: required >= %u.%u", KERNEL_VERSION_MAJ, KERNEL_VERSION_MIN);
signals_init(quit);