summaryrefslogtreecommitdiffhomepage
path: root/iana/archtype.go
diff options
context:
space:
mode:
Diffstat (limited to 'iana/archtype.go')
-rw-r--r--iana/archtype.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/iana/archtype.go b/iana/archtype.go
new file mode 100644
index 0000000..6b2cc9e
--- /dev/null
+++ b/iana/archtype.go
@@ -0,0 +1,41 @@
+package iana
+
+//ArchType encodes an architecture type in an uint16
+type ArchType uint16
+
+// see rfc4578
+const (
+ INTEL_X86PC ArchType = 0
+ NEC_PC98 ArchType = 1
+ EFI_ITANIUM ArchType = 2
+ DEC_ALPHA ArchType = 3
+ ARC_X86 ArchType = 4
+ INTEL_LEAN_CLIENT ArchType = 5
+ EFI_IA32 ArchType = 6
+ EFI_BC ArchType = 7
+ EFI_XSCALE ArchType = 8
+ EFI_X86_64 ArchType = 9
+)
+
+// ArchTypeToStringMap maps an ArchType to a mnemonic name
+var ArchTypeToStringMap = map[ArchType]string{
+ INTEL_X86PC: "Intel x86PC",
+ NEC_PC98: "NEC/PC98",
+ EFI_ITANIUM: "EFI Itanium",
+ DEC_ALPHA: "DEC Alpha",
+ ARC_X86: "Arc x86",
+ INTEL_LEAN_CLIENT: "Intel Lean Client",
+ EFI_IA32: "EFI IA32",
+ EFI_BC: "EFI BC",
+ EFI_XSCALE: "EFI Xscale",
+ EFI_X86_64: "EFI x86-64",
+}
+
+
+// ArchTypeToString returns a mnemonic name for a given architecture type
+func ArchTypeToString(a ArchType) string {
+ if at := ArchTypeToStringMap[a]; at != "" {
+ return at
+ }
+ return "Unknown"
+}