use crate::prelude::*;
pub static C_GROUP_SUCCESS: libc::c_int = 0;
pub static C_EC_GROUP_NOT_COMPILED: libc::c_int = 50000;
pub static C_EC_GROUP_NOT_MOUNTED: libc::c_int = 50001;
pub static C_EC_GROUP_NOT_EXIST: libc::c_int = 50002;
pub static C_EC_GROUP_NOT_CREATED: libc::c_int = 50003;
pub static C_EC_GROUP_SUBSYS_NOT_MOUNTED: libc::c_int = 50004;
pub static C_EC_GROUP_NOT_OWNER: libc::c_int = 50005;
pub static C_EC_GROUP_MULTI_MOUTHED: libc::c_int = 50006;
pub static C_EC_GROUP_NOT_ALLOWED: libc::c_int = 50007;
pub static C_EC_MAX_VALUES_EXCEEDED: libc::c_int = 50008;
pub static C_EC_CONTROLLER_EXISTS: libc::c_int = 50009;
pub static C_EC_VALUE_EXISTS: libc::c_int = 50010;
pub static C_EC_INVAL: libc::c_int = 50011;
pub static C_EC_CONTROLLER_CREATE_FAILED: libc::c_int = 50012;
pub static C_EC_FAIL: libc::c_int = 50013;
pub static C_EC_GROUP_NOT_INITIALIZED: libc::c_int = 50014;
pub static C_EC_GROUP_VALUE_NOT_EXIST: libc::c_int = 50015;
pub static C_EC_OTHER: libc::c_int = 50016;
pub static C_EC_GROUP_NOT_EQUAL: libc::c_int = 50017;
pub static C_EC_GROUP_ROLLER_NOT_EQUAL: libc::c_int = 50018;
pub static C_EC_GROUP_PARSE_FAIL: libc::c_int = 50019;
pub static C_EC_GROUP_NO_RULES: libc::c_int = 50020;
pub static C_EC_GROUP_MOUNT_FAIL: libc::c_int = 50021;
pub static C_EC_GROUP_SENTINEL: libc::c_int = 50022;
pub static C_EC_GROUP_EOF: libc::c_int = 50023;
pub static C_EC_GROUP_CONFIG_PARSE_FAIL: libc::c_int = 50024;
pub static C_EC_GROUP_NAMESPACE_PATHS: libc::c_int = 50025;
pub static C_EC_GROUP_NAMESPACE_CONTROLLER: libc::c_int = 50026;
pub static C_EC_GROUP_MOUNT_NAMESPACE: libc::c_int = 50027;
pub fn cg_get_error(code:libc::c_int)->std::io::Error{
unsafe {
std::io::Error::new(
std::io::Error::from_raw_os_error(code).kind(),
if code == C_EC_OTHER {
format!("Unknown Error = {}",code)
}else{
std::ffi::CStr::from_ptr(cgroup_strerror(code))
.to_string_lossy()
.into_owned()
}
)
}
}
pub fn cg_get_last_c_errno()->libc::c_int{
unsafe {
cgroup_get_last_errno()
}
}
pub fn cg_convert_c_error(code:libc::c_int)->i32{
code as i32
}
pub fn cg_get_last_errno()->i32{
unsafe {
cg_convert_c_error(cgroup_get_last_errno())
}
}
pub fn cg_get_last_error_str()->String{
unsafe {
let ret = cg_get_last_c_errno();
if ret == C_GROUP_SUCCESS {
String::from("Success")
}else{
std::ffi::CStr::from_ptr(cgroup_strerror(ret))
.to_string_lossy()
.into_owned()
.to_string()
}
}
}