rcpufetch 0.0.5

[ALPHA] A rusty crossplatform, but simple CLI binutil for reading CPU information.
#![allow(dead_code)] // exactly one of these tables is used per target_arch build
// Generated from cpufetch's src/ppc/uarch.c (masked PVR -> uarch tag -> name/process)
pub type CheckEntry = (u32, u32, &'static str); // (mask, value, uarch_tag)
pub static PPC_PVR: &[CheckEntry] = &[
    (0xffff0000, 0x00390000, "PPC970"),
    (0xffff0000, 0x003c0000, "PPC970FX"),
    (0xffffffff, 0x00440100, "PPC970MP"),
    (0xffff0000, 0x00440000, "PPC970MP"),
    (0xffff0000, 0x003a0000, "POWER5"),
    (0xffffff00, 0x003b0300, "POWER5PLUS"),
    (0xffff0000, 0x003b0000, "POWER5"),
    (0xffffffff, 0x0f000001, "POWER5"),
    (0xffff0000, 0x003e0000, "POWER6"),
    (0xffffffff, 0x0f000002, "POWER6"),
    (0xffffffff, 0x0f000003, "POWER7"),
    (0xffffffff, 0x0f000004, "POWER8"),
    (0xffffffff, 0x0f000005, "POWER9"),
    (0xffffffff, 0x0f000006, "POWER10"),
    (0xffff0000, 0x003f0000, "POWER7"),
    (0xffff0000, 0x004A0000, "POWER7PLUS"),
    (0xffff0000, 0x004b0000, "POWER8_DD21"),
    (0xffff0000, 0x004c0000, "POWER8"),
    (0xffff0000, 0x004d0000, "POWER8"),
    (0xffffefff, 0x004e0200, "POWER9_DD20"),
    (0xffffefff, 0x004e0201, "POWER9_DD21"),
    (0xffffefff, 0x004e0202, "POWER9_DD22"),
    (0xffffefff, 0x004e0203, "POWER9_DD23"),
    (0xffff0000, 0x00800000, "POWER10"),
    (0xffff0000, 0x00700000, "CELLBE"),
    (0xffff0000, 0x00040000, "PPC604"),
    (0xfffff000, 0x00090000, "PPC604"),
    (0xffff0000, 0x00090000, "PPC604"),
    (0xffff0000, 0x000a0000, "PPC604"),
    (0xffffffff, 0x00084202, "PPCG3"),
    (0xfffffff0, 0x00080100, "PPCG3"),
    (0xfffffff0, 0x00082200, "PPCG3"),
    (0xfffffff0, 0x00082210, "PPCG3"),
    (0xffffffff, 0x00083214, "PPCG3"),
    (0xfffff0e0, 0x00087000, "PPCG3"),
    (0xfffff000, 0x00083000, "PPCG3"),
    (0xffffff00, 0x70000100, "PPCG3"),
    (0xffffffff, 0x70000200, "PPCG3"),
    (0xffff0000, 0x70000000, "PPCG3"),
    (0xffff0000, 0x70020000, "PPCG3"),
    (0xffff0000, 0x00080000, "PPCG3"),
    (0xffffffff, 0x000c1101, "PPCG4"),
    (0xffff0000, 0x000c0000, "PPCG4"),
    (0xffff0000, 0x800c0000, "PPCG4"),
    (0xffffffff, 0x80000200, "PPCG4"),
    (0xffffffff, 0x80000201, "PPCG4"),
    (0xffff0000, 0x80000000, "PPCG4"),
    (0xffffff00, 0x80010100, "PPCG4"),
    (0xffffffff, 0x80010200, "PPCG4"),
    (0xffff0000, 0x80010000, "PPCG4"),
    (0xffffffff, 0x80020100, "PPCG4"),
    (0xffffffff, 0x80020101, "PPCG4"),
    (0xffff0000, 0x80020000, "PPCG4"),
    (0xffff0000, 0x80030000, "PPCG4"),
    (0xffff0000, 0x80040000, "PPCG4"),
    (0xffff0000, 0x00030000, "PPC603"),
    (0xffff0000, 0x00060000, "PPC603"),
    (0xffff0000, 0x00070000, "PPC603"),
    (0x7fff0000, 0x00810000, "PPC603"),
    (0x7fff0000, 0x00820000, "PPC603"),
    (0x7fff0000, 0x00830000, "PPC603"),
    (0x7fff0000, 0x00840000, "PPC603"),
    (0x7fff0000, 0x00850000, "PPC603"),
    (0x7fff0000, 0x00860000, "PPC603"),
    (0xffff0000, 0x41810000, "PPC405"),
    (0xffff0000, 0x41610000, "PPC405"),
    (0xffff0000, 0x40B10000, "PPC405"),
    (0xffff0000, 0x41410000, "PPC405"),
    (0xffff0000, 0x50910000, "PPC405"),
    (0xffff0000, 0x51510000, "PPC405"),
    (0xffff0000, 0x41F10000, "PPC405"),
    (0xffff0000, 0x51210000, "PPC405"),
    (0xffff000f, 0x12910007, "PPC405"),
    (0xffff000f, 0x1291000d, "PPC405"),
    (0xffff000f, 0x1291000f, "PPC405"),
    (0xffff000f, 0x12910003, "PPC405"),
    (0xffff000f, 0x12910005, "PPC405"),
    (0xffff000f, 0x12910001, "PPC405"),
    (0xffff000f, 0x12910009, "PPC405"),
    (0xffff000f, 0x1291000b, "PPC405"),
    (0xffff000f, 0x12910000, "PPC405"),
    (0xffff000f, 0x12910002, "PPC405"),
    (0xffff0000, 0x41510000, "PPC405"),
    (0xffff0000, 0x7ff11432, "PPC405"),
    (0xf0000fff, 0x40000850, "PPC440"),
    (0xf0000fff, 0x40000858, "PPC440"),
    (0xf0000fff, 0x400008d3, "PPC440"),
    (0xf0000ff7, 0x400008d4, "PPC440"),
    (0xf0000fff, 0x400008db, "PPC440"),
    (0xf0000ffb, 0x200008D0, "PPC440"),
    (0xf0000ffb, 0x200008D8, "PPC440"),
    (0xf0000fff, 0x40000440, "PPC440"),
    (0xf0000fff, 0x40000481, "PPC440"),
    (0xf0000fff, 0x50000850, "PPC440"),
    (0xf0000fff, 0x50000851, "PPC440"),
    (0xf0000fff, 0x50000892, "PPC440"),
    (0xf0000fff, 0x50000894, "PPC440"),
    (0xfff00fff, 0x53200891, "PPC440"),
    (0xfff00fff, 0x53400890, "PPC440"),
    (0xfff00fff, 0x53400891, "PPC440"),
    (0xffff0006, 0x13020002, "PPC440"),
    (0xffff0007, 0x13020004, "PPC440"),
    (0xffff0006, 0x13020000, "PPC440"),
    (0xffff0007, 0x13020005, "PPC440"),
    (0xffffff00, 0x13541800, "PPC440"),
    (0xfffffff0, 0x12C41C80, "PPC440"),
    (0xffffffff, 0x11a52080, "PPC470"),
    (0xffff0000, 0x7ff50000, "PPC470"),
    (0xffff0000, 0x00050000, "PPC470"),
    (0xffff0000, 0x11a50000, "PPC470"),
    (0xffffffff, 0x70010201, "ESPRESSO"),
];

pub type FillEntry = (&'static str, &'static str, Option<u32>); // (uarch_tag, name, process_node_nm)
pub static PPC_NAMES: &[FillEntry] = &[
    ("UNKNOWN", "Unknown", None),
    ("PPC604", "PowerPC 604", Some(500)),
    ("PPCG3", "PowerPC G3", None),
    ("PPCG4", "PowerPC G4", None),
    ("PPC405", "PowerPC 405", None),
    ("PPC603", "PowerPC 603", None),
    ("PPC440", "PowerPC 440", None),
    ("PPC470", "PowerPC 470", Some(45)),
    ("ESPRESSO", "Espresso", Some(45)),
    ("PPC970", "PowerPC 970", Some(130)),
    ("PPC970FX", "PowerPC 970FX", Some(90)),
    ("PPC970MP", "PowerPC 970MP", Some(90)),
    ("CELLBE", "Cell BE", None),
    ("POWER5", "POWER5", Some(130)),
    ("POWER5PLUS", "POWER5+", Some(90)),
    ("POWER6", "POWER6", Some(65)),
    ("POWER7", "POWER7", Some(45)),
    ("POWER7PLUS", "POWER7+", Some(32)),
    ("POWER8", "POWER8", Some(22)),
    ("POWER8_DD21", "POWER8 (DD2.1)", Some(22)),
    ("POWER9", "POWER9", Some(14)),
    ("POWER9_DD20", "POWER9 (DD2.0)", Some(14)),
    ("POWER9_DD21", "POWER9 (DD2.1)", Some(14)),
    ("POWER9_DD22", "POWER9 (DD2.2)", Some(14)),
    ("POWER9_DD23", "POWER9 (DD2.3)", Some(14)),
    ("POWER10", "POWER10", Some(7)),
];