1#![allow(non_upper_case_globals)]
2
3use crate::generated::binding::*;
4use std::fmt;
5use std::fmt::Formatter;
6
7#[derive(Debug)]
8pub enum Arch {
10 Warboy = FuriosaSmiArch_FURIOSA_SMI_ARCH_WARBOY as isize,
12 Rngd = FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD as isize,
14 RngdMax = FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD_MAX as isize,
16 RngdS = FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD_S as isize,
18}
19
20impl Arch {
21 pub(crate) fn from(raw: FuriosaSmiArch) -> Arch {
22 match raw {
23 FuriosaSmiArch_FURIOSA_SMI_ARCH_WARBOY => Arch::Warboy,
24 FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD => Arch::Rngd,
25 FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD_MAX => Arch::RngdMax,
26 FuriosaSmiArch_FURIOSA_SMI_ARCH_RNGD_S => Arch::RngdS,
27 _ => panic!("unknown arch"),
28 }
29 }
30}
31
32impl fmt::Display for Arch {
33 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
34 let s = match self {
35 Arch::Warboy => "warboy",
36 Arch::Rngd => "rngd",
37 Arch::RngdS => "rngd_s",
38 Arch::RngdMax => "rngd_max",
39 };
40 write!(f, "{}", s)
41 }
42}
43
44pub enum LinkType {
46 Unknown =
48 FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_UNKNOWN as isize,
49 Interconnect =
51 FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_INTERCONNECT
52 as isize,
53 Cpu = FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_CPU as isize,
55 Bridge =
57 FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_BRIDGE as isize,
58 Noc = FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_NOC as isize,
60}
61
62impl LinkType {
63 pub(crate) fn from(raw: FuriosaSmiDeviceToDeviceLinkType) -> LinkType {
64 match raw {
65 FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_UNKNOWN => {
66 LinkType::Unknown
67 }
68 FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_INTERCONNECT => {
69 LinkType::Interconnect
70 }
71 FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_CPU => {
72 LinkType::Cpu
73 }
74 FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_BRIDGE => {
75 LinkType::Bridge
76 }
77 FuriosaSmiDeviceToDeviceLinkType_FURIOSA_SMI_DEVICE_TO_DEVICE_LINK_TYPE_NOC => {
78 LinkType::Noc
79 }
80 _ => panic!("unknown linktype"),
81 }
82 }
83}
84
85impl fmt::Display for LinkType {
86 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
87 let s = match self {
88 LinkType::Unknown => "Unknown",
89 LinkType::Interconnect => "Interconnect",
90 LinkType::Cpu => "Cpu",
91 LinkType::Bridge => "Bridge",
92 LinkType::Noc => "Noc",
93 };
94 write!(f, "{}", s)
95 }
96}