use std::{ffi::{c_char, c_int}, ptr::null};
use crate::{
core::os::unix::linux::bedrock::{
check_bedrock, detect_pmm_interface, detect_stratum_init, list_strata, running_in_strat,
},
utils::convert::cstr::str_to_cstr,
};
#[unsafe(no_mangle)]
pub extern "C" fn fxkit_check_bedrock() -> bool {
check_bedrock()
}
#[unsafe(no_mangle)]
pub extern "C" fn fxkit_list_strata() -> c_int {
match list_strata() {
Ok(value) => return value as c_int,
Err(_) => return 0,
};
}
#[unsafe(no_mangle)]
pub extern "C" fn fxkit_running_in_strat() -> bool {
match running_in_strat() {
Ok(running) => return running,
Err(_) => return false
}
}
#[unsafe(no_mangle)]
pub extern "C" fn fxkit_pmm_detect_interface() -> *const c_char {
match detect_pmm_interface() {
Ok(pmm_interface) => unsafe { str_to_cstr(&pmm_interface) },
Err(_) => null(),
}
}
#[unsafe(no_mangle)]
pub extern "C" fn fxkit_detect_init_stratum() -> *const c_char {
match detect_stratum_init() {
Ok(strata) => unsafe { str_to_cstr(&strata) },
Err(_) => null()
}
}