in reverie-ptrace/src/timer.rs [48:72]
fn full_family_model(vendor: &str, fi: &FeatureInfo) -> (u8, u8) {
let base_family_id = fi.family_id();
let base_model_id = fi.model_id();
let extended_model_id = fi.extended_model_id();
let extended_family_id = fi.extended_family_id();
let family_id = {
let just_use_base = (vendor == AMD_VENDOR && base_family_id < 0xf)
|| (vendor == INTEL_VENDOR && base_family_id != 0xf);
if just_use_base {
base_family_id
} else {
base_family_id + extended_family_id
}
};
let model_id = {
let just_use_base = (vendor == AMD_VENDOR && base_family_id < 0xf)
|| (vendor == INTEL_VENDOR && base_family_id != 0xf && base_family_id != 0x6);
if just_use_base {
base_model_id
} else {
(extended_model_id << 4) | base_model_id
}
};
(family_id, model_id)
}