use std::sync::LazyLock;
pub(crate) static SCF_LIMIT_MAX_NAME_LENGTH: LazyLock<usize> =
LazyLock::new(|| scf_limit(libscf_sys::SCF_LIMIT_MAX_NAME_LENGTH));
pub(crate) static SCF_LIMIT_MAX_PG_TYPE_LENGTH: LazyLock<usize> =
LazyLock::new(|| scf_limit(libscf_sys::SCF_LIMIT_MAX_PG_TYPE_LENGTH));
pub(crate) static SCF_LIMIT_MAX_VALUE_LENGTH: LazyLock<usize> =
LazyLock::new(|| scf_limit(libscf_sys::SCF_LIMIT_MAX_VALUE_LENGTH));
fn scf_limit(limit_id: u32) -> usize {
let sz = unsafe { libscf_sys::scf_limit(limit_id) };
assert!(sz > 0, "unexpected return value from scf_limit({limit_id}): {sz}");
sz as usize
}