elf_utilities/dynamic/
flags.rs1#[derive(Debug, Clone, Hash, PartialOrd, Ord, PartialEq, Eq)]
2pub enum Flag {
3 Origin,
5 Symbolic,
7 TextRel,
9 BindNow,
11 StaticTLS,
13 Now1,
15 Global1,
17 Group1,
19 NoDelete1,
21 LoadFilter1,
23 InitFirst1,
25 NoOpen1,
27 Origin1,
29 Direct1,
31 Trans1,
32 Interpose1,
34 NoDefLib1,
36 NoDump1,
38 ConfAlt1,
40 EndFiltee1,
42 DispRelDNE1,
44 DispRelPND1,
46 NoDirect1,
48 IGNMulDef1,
49 NokSyms1,
50 NoHdr1,
51 Edited1,
53 NoReloc1,
54 SymInterpose1,
56 GlobalAudit1,
58 Singleton1,
60 Stub1,
61 PIE1,
62 KMod1,
63 WeakFilter1,
64 NoCommon1,
65 Any(u64),
67}
68
69impl Flag {
70 pub fn from_def(value: u64) -> Flag {
72 match value {
73 0x1 => Flag::Origin,
74 0x2 => Flag::Symbolic,
75 0x4 => Flag::TextRel,
76 0x8 => Flag::BindNow,
77 0x10 => Flag::StaticTLS,
78 _ => Flag::Any(value),
79 }
80 }
81 pub fn from_1(value: u64) -> Flag {
83 match value {
84 0x1 => Flag::Now1,
85 0x2 => Flag::Global1,
86 0x4 => Flag::Group1,
87 0x8 => Flag::NoDelete1,
88 0x10 => Flag::LoadFilter1,
89 0x20 => Flag::InitFirst1,
90 0x40 => Flag::NoOpen1,
91 0x80 => Flag::Origin1,
92 0x100 => Flag::Direct1,
93 0x200 => Flag::Trans1,
94 0x400 => Flag::Interpose1,
95 0x800 => Flag::NoDefLib1,
96 0x1000 => Flag::NoDump1,
97 0x2000 => Flag::ConfAlt1,
98 0x4000 => Flag::EndFiltee1,
99 0x8000 => Flag::DispRelDNE1,
100 0x10000 => Flag::DispRelPND1,
101 0x20000 => Flag::NoDirect1,
102 0x40000 => Flag::IGNMulDef1,
103 0x80000 => Flag::NokSyms1,
104 0x100000 => Flag::NoHdr1,
105 0x200000 => Flag::Edited1,
106 0x400000 => Flag::NoReloc1,
107 0x800000 => Flag::SymInterpose1,
108 0x1000000 => Flag::GlobalAudit1,
109 0x2000000 => Flag::Singleton1,
110 0x4000000 => Flag::Stub1,
111 0x8000000 => Flag::PIE1,
112 0x10000000 => Flag::KMod1,
113 0x20000000 => Flag::WeakFilter1,
114 0x40000000 => Flag::NoCommon1,
115 _ => Flag::Any(value),
116 }
117 }
118}