use std::env;
use std::path::PathBuf;
fn main() {
println!("cargo:rerun-if-changed=wrapper.h");
let bindings = bindgen::Builder::default()
.header("wrapper.h")
.allowlist_function("kvm_close")
.allowlist_function("kvm_dpcpu_setcpu")
.allowlist_function("kvm_getargv")
.allowlist_function("kvm_getcptim")
.allowlist_function("kvm_getenvv")
.allowlist_function("kvm_geterr")
.allowlist_function("kvm_getfiles")
.allowlist_function("kvm_getloadavg")
.allowlist_function("kvm_getmaxcpu")
.allowlist_function("kvm_getpcpu")
.allowlist_function("kvm_counter_u64_fetch")
.allowlist_function("kvm_getprocs")
.allowlist_function("kvm_getswapinfo")
.allowlist_function("kvm_nlist")
.allowlist_function("kvm_open")
.allowlist_function("kvm_openfiles")
.allowlist_function("kvm_read")
.allowlist_function("kvm_read_zpcpu")
.allowlist_function("kvm_write")
.allowlist_var("_SIG_WORDS")
.allowlist_var("CRED_FLAG_CAPMODE")
.allowlist_var("PRI_ITHD")
.allowlist_var("PRI_REALTIME")
.allowlist_var("PRI_TIMESHARE")
.allowlist_var("PRI_IDLE")
.parse_callbacks(Box::new(bindgen::CargoCallbacks))
.generate()
.expect("Unable to generate bindings");
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
bindings
.write_to_file(out_path.join("bindings.rs"))
.expect("Couldn't write bindings!");
}