elf_utilities/header/
osabi.rs1pub enum OSABI {
2 None,
4 SysV,
5 HPUX,
7 NetBSD,
9 GNU,
11 Linux,
12
13 Solaris,
15 AIX,
17 Irix,
19 FreeBSD,
21 TRU64,
23 Modesto,
25 OPENBSD,
27 ArmAEABI,
29 Arm,
31 Standalone,
33 Any(u8),
35}
36
37impl OSABI {
38 pub const INDEX: usize = 7;
39
40 pub fn to_identifier(&self) -> u8 {
41 match self {
42 Self::None | Self::SysV => 0,
43 Self::HPUX => 1,
44 Self::NetBSD => 2,
45 Self::GNU | Self::Linux => 3,
46
47 Self::Solaris => 6,
48 Self::AIX => 7,
49 Self::Irix => 8,
50 Self::FreeBSD => 9,
51 Self::TRU64 => 10,
52 Self::Modesto => 11,
53 Self::OPENBSD => 12,
54 Self::ArmAEABI => 64,
55 Self::Arm => 97,
56 Self::Standalone => 255,
57 Self::Any(c) => *c,
58 }
59 }
60}
61
62impl From<u8> for OSABI {
63 fn from(byte: u8) -> Self {
64 match byte {
65 0 => Self::SysV,
66 1 => Self::HPUX,
67 2 => Self::NetBSD,
68 3 => Self::GNU,
69 6 => Self::Solaris,
70 7 => Self::AIX,
71 8 => Self::Irix,
72 9 => Self::FreeBSD,
73 10 => Self::TRU64,
74 11 => Self::Modesto,
75 12 => Self::OPENBSD,
76 64 => Self::ArmAEABI,
77 97 => Self::Arm,
78 255 => Self::Standalone,
79 _ => Self::Any(byte),
80 }
81 }
82}