use libc::{c_char, c_int};
extern "C" {
fn get_os_release(outbuf: *const c_char, outlen: usize) -> c_int;
fn get_build_number() -> c_int;
}
pub fn kernel_version() -> Option<String> {
unsafe {
let size = 8;
let mut buf = vec![0; size];
let written = get_os_release(buf.as_mut_ptr() as _, size) as usize;
match written {
0 => None,
_ => Some(String::from_utf8_lossy(&buf[0..written]).into_owned()),
}
}
}
pub fn windows_build_number() -> Option<i32> {
unsafe {
let build_number = get_build_number();
match build_number {
0 => None,
_ => Some(build_number),
}
}
}