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:
parent
37498fc64d
commit
fd51d7bac9
3 changed files with 10 additions and 12 deletions
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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, ¤t))
|
||||
if (version_parse(uts.release, v))
|
||||
return -1;
|
||||
|
||||
return version_cmp(¤t, &required) < 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int kernel_get_cmdline_param(const char *param, char *buf, size_t len)
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue