From feefca1b1cfcb04b0c749dca9d4996a9c1b73618 Mon Sep 17 00:00:00 2001 From: Bryce Kahle Date: Tue, 15 Feb 2022 17:20:34 -0800 Subject: [PATCH] features: add LinuxVersionCode function to obtain LINUX_VERSION_CODE In order to allow userspace to determine the value used for LINUX_VERSION_CODE at compile time, expose the constant here. This is useful when building eBPF objects at runtime. --- features/version.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 features/version.go diff --git a/features/version.go b/features/version.go new file mode 100644 index 000000000..f95d049e7 --- /dev/null +++ b/features/version.go @@ -0,0 +1,16 @@ +package features + +import "github.com/cilium/ebpf/internal" + +// LinuxVersionCode returns the version of the currently running kernel +// as defined in the LINUX_VERSION_CODE compile-time macro. +// +// The kernel version and patch level are represented as a single value +// equal to the KERNEL_VERSION macro from linux/version.h. +func LinuxVersionCode() (uint32, error) { + v, err := internal.KernelVersion() + if err != nil { + return 0, err + } + return v.Kernel(), nil +}