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/x86/uarch.c (family/model/stepping -> microarchitecture name)
// (ext_family, family, ext_model, model, stepping, name, process_node_nm)
// (ext_family, family, ext_model, model, stepping, name, process_node_nm) -- ext_model/model/stepping are wildcards when None
pub type Entry = (
    u32,
    u32,
    Option<u32>,
    Option<u32>,
    Option<u32>,
    &'static str,
    Option<u32>,
);

pub static INTEL: &[Entry] = &[
    (0, 4, Some(0), Some(0), None, "i80486DX", None),
    (0, 4, Some(0), Some(1), None, "i80486DX-50", None),
    (0, 4, Some(0), Some(2), None, "i80486SX", None),
    (0, 4, Some(0), Some(3), None, "i80486DX2", None),
    (0, 4, Some(0), Some(4), None, "i80486SL", None),
    (0, 4, Some(0), Some(5), None, "i80486SX2", None),
    (0, 4, Some(0), Some(7), None, "i80486DX2WB", None),
    (0, 4, Some(0), Some(8), None, "i80486DX4", None),
    (0, 4, Some(0), Some(9), None, "i80486DX4WB", None),
    (0, 5, Some(0), Some(0), None, "P5", Some(800)),
    (0, 5, Some(0), Some(1), None, "P5", Some(800)),
    (0, 5, Some(0), Some(2), None, "P54C", None),
    (0, 5, Some(0), Some(3), None, "P24T (Overdrive)", Some(600)),
    (0, 5, Some(0), Some(4), None, "P55C (MMX)", Some(350)),
    (0, 5, Some(0), Some(7), None, "P54C", Some(350)),
    (0, 5, Some(0), Some(8), None, "Tillamook", Some(250)),
    (0, 5, Some(0), Some(9), Some(0), "Lakemont", Some(32)),
    (0, 5, Some(0), Some(9), None, "P5 (MMX)", None),
    (0, 5, Some(0), Some(10), Some(0), "Lakemont", Some(32)),
    (0, 6, Some(0), Some(1), Some(1), "P6", None),
    (0, 6, Some(0), Some(1), Some(2), "P6", None),
    (0, 6, Some(0), Some(1), Some(6), "P6", Some(350)),
    (0, 6, Some(0), Some(1), Some(7), "P6", Some(350)),
    (0, 6, Some(0), Some(1), Some(9), "P6", Some(350)),
    (0, 6, Some(0), Some(0), None, "P6 (Pentium II)", None),
    (0, 6, Some(0), Some(1), None, "P6 (Pentium II)", None),
    (0, 6, Some(0), Some(2), None, "P6 (Pentium II)", None),
    (0, 6, Some(0), Some(3), None, "P6 (Klamath)", Some(350)),
    (0, 6, Some(0), Some(4), None, "P6 (Pentium II)", None),
    (0, 6, Some(0), Some(5), None, "P6 (Deschutes)", Some(250)),
    (0, 6, Some(0), Some(6), None, "P6 (Dixon)", None),
    (0, 6, Some(0), Some(7), None, "P6 (Katmai)", Some(250)),
    (0, 6, Some(0), Some(8), None, "P6 (Coppermine)", Some(180)),
    (0, 6, Some(0), Some(9), None, "P6 (Pentium M)", Some(130)),
    (
        0,
        6,
        Some(0),
        Some(10),
        None,
        "P6 (Coppermine T)",
        Some(180),
    ),
    (0, 6, Some(0), Some(11), None, "P6 (Tualatin)", Some(130)),
    (0, 6, Some(0), Some(13), None, "Dothan", None),
    (0, 6, Some(0), Some(14), None, "Yonah", Some(65)),
    (0, 6, Some(0), Some(15), None, "Merom", Some(65)),
    (0, 6, Some(1), Some(5), None, "Dothan", Some(90)),
    (0, 6, Some(1), Some(6), None, "Merom", Some(65)),
    (0, 6, Some(1), Some(7), None, "Penryn", Some(45)),
    (0, 6, Some(1), Some(10), None, "Nehalem", Some(45)),
    (0, 6, Some(1), Some(12), None, "Bonnell", Some(45)),
    (0, 6, Some(1), Some(13), None, "Penryn", Some(45)),
    (0, 6, Some(1), Some(14), None, "Nehalem", Some(45)),
    (0, 6, Some(1), Some(15), None, "Nehalem", Some(45)),
    (0, 6, Some(2), Some(5), None, "Westmere", Some(32)),
    (0, 6, Some(2), Some(6), None, "Bonnell", Some(45)),
    (0, 6, Some(2), Some(7), None, "Saltwell", Some(32)),
    (0, 6, Some(2), Some(10), None, "Sandy Bridge", Some(32)),
    (0, 6, Some(2), Some(12), None, "Westmere", Some(32)),
    (0, 6, Some(2), Some(13), None, "Sandy Bridge", Some(32)),
    (0, 6, Some(2), Some(14), None, "Nehalem", Some(45)),
    (0, 6, Some(2), Some(15), None, "Westmere", Some(32)),
    (0, 6, Some(3), Some(5), None, "Saltwell", Some(14)),
    (0, 6, Some(3), Some(6), None, "Saltwell", Some(32)),
    (0, 6, Some(3), Some(7), None, "Silvermont", Some(22)),
    (0, 6, Some(3), Some(10), None, "Ivy Bridge", Some(22)),
    (0, 6, Some(3), Some(12), None, "Haswell", Some(22)),
    (0, 6, Some(3), Some(13), None, "Broadwell", Some(14)),
    (0, 6, Some(3), Some(14), None, "Ivy Bridge", Some(22)),
    (0, 6, Some(3), Some(15), None, "Haswell", Some(22)),
    (0, 6, Some(4), Some(5), None, "Haswell", Some(22)),
    (0, 6, Some(4), Some(6), None, "Haswell", Some(22)),
    (0, 6, Some(4), Some(7), None, "Broadwell", Some(14)),
    (0, 6, Some(4), Some(10), None, "Silvermont", Some(22)),
    (0, 6, Some(4), Some(12), None, "Airmont", Some(14)),
    (0, 6, Some(4), Some(13), None, "Silvermont", Some(22)),
    (0, 6, Some(4), Some(14), Some(8), "Kaby Lake", Some(14)),
    (0, 6, Some(4), Some(14), None, "Skylake", Some(14)),
    (0, 6, Some(4), Some(15), None, "Broadwell", Some(14)),
    (0, 6, Some(5), Some(5), Some(6), "Cascade Lake", Some(14)),
    (0, 6, Some(5), Some(5), Some(7), "Cascade Lake", Some(14)),
    (0, 6, Some(5), Some(5), Some(10), "Cooper Lake", Some(14)),
    (0, 6, Some(5), Some(5), None, "Skylake", Some(14)),
    (0, 6, Some(5), Some(6), None, "Broadwell", Some(14)),
    (0, 6, Some(5), Some(7), None, "Knights Landing", Some(14)),
    (0, 6, Some(5), Some(10), None, "Silvermont", Some(22)),
    (0, 6, Some(5), Some(12), None, "Goldmont", Some(14)),
    (0, 6, Some(5), Some(13), None, "Silvermont", Some(22)),
    (0, 6, Some(5), Some(14), Some(8), "Kaby Lake", Some(14)),
    (0, 6, Some(5), Some(14), None, "Skylake", Some(14)),
    (0, 6, Some(5), Some(15), None, "Goldmont", Some(14)),
    (0, 6, Some(6), Some(6), None, "Palm Cove", Some(10)),
    (0, 6, Some(6), Some(10), None, "Sunny Cove", Some(10)),
    (0, 6, Some(6), Some(12), None, "Sunny Cove", Some(10)),
    (0, 6, Some(7), Some(5), None, "Airmont", Some(14)),
    (0, 6, Some(7), Some(10), None, "Goldmont Plus", Some(14)),
    (0, 6, Some(7), Some(13), None, "Sunny Cove", Some(10)),
    (0, 6, Some(7), Some(14), None, "Ice Lake", Some(10)),
    (0, 6, Some(8), Some(5), None, "Knights Mill", Some(14)),
    (0, 6, Some(8), Some(6), None, "Tremont", Some(10)),
    (0, 6, Some(8), Some(10), None, "Tremont", Some(10)),
    (0, 6, Some(8), Some(12), None, "Tiger Lake", Some(10)),
    (0, 6, Some(8), Some(13), None, "Tiger Lake", Some(10)),
    (0, 6, Some(8), Some(14), Some(11), "Whiskey Lake", Some(14)),
    (0, 6, Some(8), Some(15), Some(8), "Sapphire Rapids", Some(7)),
    (0, 6, Some(9), Some(6), None, "Tremont", Some(10)),
    (0, 6, Some(9), Some(7), None, "Alder Lake", Some(10)),
    (0, 6, Some(9), Some(10), None, "Alder Lake", Some(10)),
    (0, 6, Some(9), Some(12), None, "Tremont", Some(10)),
    (0, 6, Some(9), Some(13), None, "Sunny Cove", Some(10)),
    (0, 6, Some(9), Some(14), Some(9), "Kaby Lake", Some(14)),
    (0, 6, Some(9), Some(14), Some(10), "Coffee Lake", Some(14)),
    (0, 6, Some(9), Some(14), Some(11), "Coffee Lake", Some(14)),
    (0, 6, Some(9), Some(14), Some(12), "Coffee Lake", Some(14)),
    (0, 6, Some(9), Some(14), Some(13), "Coffee Lake", Some(14)),
    (0, 6, Some(10), Some(5), None, "Comet Lake", Some(14)),
    (0, 6, Some(10), Some(6), None, "Comet Lake", Some(14)),
    (0, 6, Some(10), Some(7), None, "Rocket Lake", Some(14)),
    (0, 6, Some(11), Some(7), None, "Raptor Lake", Some(10)),
    (0, 6, Some(11), Some(10), None, "Raptor Lake", Some(10)),
    (0, 6, Some(11), Some(14), None, "Alder Lake", Some(10)),
    (0, 6, Some(11), Some(15), None, "Raptor Lake", Some(10)),
    (0, 11, Some(0), Some(0), None, "Knights Ferry", Some(45)),
    (0, 11, Some(0), Some(1), None, "Knights Corner", Some(22)),
    (0, 15, Some(0), Some(0), None, "Willamette", Some(180)),
    (0, 15, Some(0), Some(1), None, "Willamette", Some(180)),
    (0, 15, Some(0), Some(2), None, "Northwood", Some(130)),
    (0, 15, Some(0), Some(3), None, "Prescott", Some(90)),
    (0, 15, Some(0), Some(4), None, "Prescott", Some(90)),
    (0, 15, Some(0), Some(6), None, "Cedar Mill", Some(65)),
    (1, 15, Some(0), Some(0), None, "Itanium2", Some(180)),
    (1, 15, Some(0), Some(1), None, "Itanium2", Some(130)),
    (1, 15, Some(0), Some(2), None, "Itanium2", Some(130)),
];

pub static AMD: &[Entry] = &[
    (0, 4, Some(0), Some(3), None, "Am486DX2", None),
    (0, 4, Some(0), Some(7), None, "Am486DX2WB", None),
    (0, 4, Some(0), Some(8), None, "Am486DX4", None),
    (0, 4, Some(0), Some(9), None, "Am486DX4WB", None),
    (0, 4, Some(0), Some(14), None, "Am5x86", Some(350)),
    (0, 4, Some(0), Some(15), None, "Am5x86WB", Some(350)),
    (0, 5, Some(0), Some(0), None, "SSA5 (K5)", Some(350)),
    (0, 5, Some(0), Some(1), None, "K5", Some(350)),
    (0, 5, Some(0), Some(2), None, "K5", Some(350)),
    (0, 5, Some(0), Some(3), None, "K5", Some(350)),
    (0, 5, Some(0), Some(6), None, "K6", Some(300)),
    (0, 5, Some(0), Some(7), None, "K6", Some(250)),
    (0, 5, Some(0), Some(10), None, "K7", Some(130)),
    (0, 5, Some(0), Some(13), None, "K6", Some(80)),
    (0, 5, None, None, None, "K6", None),
    (0, 6, Some(0), Some(1), None, "K7", Some(250)),
    (0, 6, Some(0), Some(2), None, "K7", Some(180)),
    (0, 6, None, None, None, "K7", None),
    (0, 15, Some(0), Some(4), Some(8), "K8", Some(130)),
    (0, 15, Some(0), Some(4), None, "K8", Some(130)),
    (0, 15, Some(0), Some(5), None, "K8", Some(130)),
    (0, 15, Some(0), Some(7), None, "K8", Some(130)),
    (0, 15, Some(0), Some(8), None, "K8", Some(130)),
    (0, 15, Some(0), Some(11), None, "K8", Some(130)),
    (0, 15, Some(0), Some(12), None, "K8", Some(130)),
    (0, 15, Some(0), Some(14), None, "K8", Some(130)),
    (0, 15, Some(0), Some(15), None, "K8", Some(130)),
    (0, 15, Some(1), Some(4), None, "K8", Some(90)),
    (0, 15, Some(1), Some(5), None, "K8", Some(90)),
    (0, 15, Some(1), Some(7), None, "K8", Some(90)),
    (0, 15, Some(1), Some(8), None, "K8", Some(90)),
    (0, 15, Some(1), Some(11), None, "K8", Some(90)),
    (0, 15, Some(1), Some(12), None, "K8", Some(90)),
    (0, 15, Some(1), Some(15), None, "K8", Some(90)),
    (0, 15, Some(2), Some(1), None, "K8", Some(90)),
    (0, 15, Some(2), Some(3), None, "K8", Some(90)),
    (0, 15, Some(2), Some(4), None, "K8", Some(90)),
    (0, 15, Some(2), Some(5), None, "K8", Some(90)),
    (0, 15, Some(2), Some(7), None, "K8", Some(90)),
    (0, 15, Some(2), Some(11), None, "K8", Some(90)),
    (0, 15, Some(2), Some(12), None, "K8", Some(90)),
    (0, 15, Some(2), Some(15), None, "K8", Some(90)),
    (0, 15, Some(4), Some(1), None, "K8", Some(90)),
    (0, 15, Some(4), Some(3), None, "K8", Some(90)),
    (0, 15, Some(4), Some(8), None, "K8", Some(90)),
    (0, 15, Some(4), Some(11), None, "K8", Some(90)),
    (0, 15, Some(4), Some(12), None, "K8", Some(90)),
    (0, 15, Some(4), Some(15), None, "K8", Some(90)),
    (0, 15, Some(5), Some(13), None, "K8", Some(90)),
    (0, 15, Some(5), Some(15), None, "K8", Some(90)),
    (0, 15, Some(6), Some(8), None, "K8", Some(65)),
    (0, 15, Some(6), Some(11), None, "K8", Some(65)),
    (0, 15, Some(6), Some(12), None, "K8", Some(65)),
    (0, 15, Some(6), Some(15), None, "K8", Some(65)),
    (0, 15, Some(7), Some(12), None, "K8", Some(65)),
    (0, 15, Some(7), Some(15), None, "K8", Some(65)),
    (0, 15, Some(12), Some(1), None, "K8", Some(90)),
    (1, 15, Some(0), Some(0), None, "K10", Some(65)),
    (1, 15, Some(0), Some(2), None, "K10", Some(65)),
    (1, 15, Some(0), Some(4), None, "K10", Some(45)),
    (1, 15, Some(0), Some(5), None, "K10", Some(45)),
    (1, 15, Some(0), Some(6), None, "K10", Some(45)),
    (1, 15, Some(0), Some(8), None, "K10", Some(45)),
    (1, 15, Some(0), Some(9), None, "K10", Some(45)),
    (1, 15, Some(0), Some(10), None, "K10", Some(45)),
    (2, 15, None, None, None, "Puma 2008", Some(65)),
    (3, 15, None, None, None, "K10", Some(32)),
    (5, 15, None, None, None, "Bobcat", Some(40)),
    (6, 15, Some(0), Some(0), None, "Bulldozer", Some(32)),
    (6, 15, Some(0), Some(1), None, "Bulldozer", Some(32)),
    (6, 15, Some(0), Some(2), None, "Piledriver", Some(32)),
    (6, 15, Some(1), Some(0), None, "Piledriver", Some(32)),
    (6, 15, Some(1), Some(3), None, "Piledriver", Some(32)),
    (6, 15, Some(3), Some(0), None, "Steamroller", Some(28)),
    (6, 15, Some(3), Some(8), None, "Steamroller", Some(28)),
    (6, 15, Some(4), Some(0), None, "Steamroller", Some(28)),
    (6, 15, Some(6), Some(0), None, "Excavator", Some(28)),
    (6, 15, Some(6), Some(5), None, "Excavator", Some(28)),
    (6, 15, Some(7), Some(0), None, "Excavator", Some(28)),
    (7, 15, Some(0), Some(0), None, "Jaguar", Some(28)),
    (7, 15, Some(1), None, None, "Jaguar", Some(14)),
    (7, 15, Some(2), Some(6), None, "Jaguar", Some(28)),
    (7, 15, Some(3), Some(0), None, "Puma 2014", Some(28)),
    (8, 15, Some(0), Some(0), None, "Zen", Some(14)),
    (8, 15, Some(0), Some(1), None, "Zen", Some(14)),
    (8, 15, Some(0), Some(8), None, "Zen+", Some(12)),
    (8, 15, Some(1), Some(1), None, "Zen", Some(14)),
    (8, 15, Some(1), Some(8), None, "Zen+", Some(12)),
    (8, 15, Some(2), Some(0), None, "Zen", Some(14)),
    (8, 15, Some(3), Some(1), None, "Zen 2", Some(7)),
    (8, 15, Some(4), Some(7), None, "Zen 2", Some(7)),
    (8, 15, Some(5), Some(0), None, "Zen", Some(14)),
    (8, 15, Some(6), Some(0), None, "Zen 2", Some(7)),
    (8, 15, Some(6), Some(8), None, "Zen 2", Some(7)),
    (8, 15, Some(7), Some(1), None, "Zen 2", Some(7)),
    (8, 15, Some(8), Some(4), None, "Zen 2", Some(7)),
    (8, 15, Some(9), Some(0), Some(2), "Zen 2", Some(7)),
    (8, 15, Some(10), Some(0), None, "Zen 2", Some(6)),
    (10, 15, Some(0), Some(1), None, "Zen 3", Some(7)),
    (10, 15, Some(0), Some(8), None, "Zen 3", Some(7)),
    (10, 15, Some(1), Some(1), None, "Zen 4", Some(5)),
    (10, 15, Some(1), Some(8), None, "Zen 4", Some(5)),
    (10, 15, Some(2), Some(1), None, "Zen 3", Some(7)),
    (10, 15, Some(3), None, None, "Zen 3", Some(7)),
    (10, 15, Some(4), Some(4), None, "Zen 3+", Some(6)),
    (10, 15, Some(5), Some(0), None, "Zen 3", Some(7)),
    (10, 15, Some(6), Some(1), Some(2), "Zen 4", Some(5)),
    (10, 15, Some(7), Some(4), Some(1), "Zen 4", Some(4)),
    (10, 15, Some(7), Some(5), Some(2), "Zen 4", Some(4)),
    (10, 15, Some(7), Some(8), Some(0), "Zen 4", Some(4)),
    (10, 15, Some(8), None, None, "Zen 4", Some(5)),
    (10, 15, Some(9), None, None, "Zen 4", Some(5)),
    (10, 15, Some(10), None, None, "Zen 4c", Some(5)),
    (11, 15, Some(0), None, None, "Zen 5", Some(4)),
    (11, 15, Some(1), None, None, "Zen 5c", Some(3)),
    (11, 15, Some(2), None, None, "Zen 5", Some(4)),
    (11, 15, Some(4), None, None, "Zen 5", Some(4)),
    (11, 15, Some(6), None, None, "Zen 5", Some(4)),
    (11, 15, Some(7), None, None, "Zen 5", Some(4)),
];

pub static HYGON: &[Entry] = &[(9, 15, Some(0), Some(1), None, "Zen", None)];