1pub use semver::{SemVerError, Version};
2
3mod raw {
4 include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
5}
6
7pub fn linux_headers_version() -> Version {
9 let version = raw::LINUX_VERSION_CODE as u64;
10 let major = version >> 16;
11 let minor = version >> 8 & 0xFF;
12 let patch = version & 0xFF;
13 Version::new(major, minor, patch)
14}
15
16pub fn linux_kernel_version() -> Result<Version, SemVerError> {
20 let uname = nix::sys::utsname::uname();
21 let pre_ver = Version::parse(uname.release())?;
22 Ok(Version {
23 pre: vec![],
24 build: pre_ver.pre.clone(),
25 ..pre_ver
26 })
27}