@@ -27,19 +27,6 @@ type Phdr = libc::Elf32_Phdr;
27
27
type Phdr = libc:: Elf64_Phdr ;
28
28
29
29
const NT_GNU_BUILD_ID : u32 = 3 ;
30
- const PT_NULL : u32 = 0 ;
31
- const PT_LOAD : u32 = 1 ;
32
- const PT_DYNAMIC : u32 = 2 ;
33
- const PT_INTERP : u32 = 3 ;
34
- const PT_NOTE : u32 = 4 ;
35
- const PT_SHLIB : u32 = 5 ;
36
- const PT_PHDR : u32 = 6 ;
37
- const PT_TLS : u32 = 7 ;
38
- const PT_NUM : u32 = 8 ;
39
- const PT_LOOS : u32 = 0x60000000 ;
40
- const PT_GNU_EH_FRAME : u32 = 0x6474e550 ;
41
- const PT_GNU_STACK : u32 = 0x6474e551 ;
42
- const PT_GNU_RELRO : u32 = 0x6474e552 ;
43
30
44
31
// Normally we would use `Elf32_Nhdr` on 32-bit platforms and `Elf64_Nhdr` on
45
32
// 64-bit platforms. However, in practice it seems that only `Elf32_Nhdr` is
@@ -72,7 +59,7 @@ impl<'a> Segment<'a> {
72
59
}
73
60
74
61
fn is_note ( & self ) -> bool {
75
- self . phdr ( ) . p_type == PT_NOTE
62
+ self . phdr ( ) . p_type == libc :: PT_NOTE
76
63
}
77
64
78
65
/// Parse the contents of a `PT_NOTE` segment.
@@ -157,19 +144,17 @@ impl<'a> SegmentTrait for Segment<'a> {
157
144
fn name ( & self ) -> & str {
158
145
unsafe {
159
146
match self . phdr . as_ref ( ) . unwrap ( ) . p_type {
160
- PT_NULL => "NULL" ,
161
- PT_LOAD => "LOAD" ,
162
- PT_DYNAMIC => "DYNAMIC" ,
163
- PT_INTERP => "INTERP" ,
164
- PT_NOTE => "NOTE" ,
165
- PT_SHLIB => "SHLI" ,
166
- PT_PHDR => "PHDR" ,
167
- PT_TLS => "TLS" ,
168
- PT_NUM => "NUM" ,
169
- PT_LOOS => "LOOS" ,
170
- PT_GNU_EH_FRAME => "GNU_EH_FRAME" ,
171
- PT_GNU_STACK => "GNU_STACK" ,
172
- PT_GNU_RELRO => "GNU_RELRO" ,
147
+ libc:: PT_NULL => "NULL" ,
148
+ libc:: PT_LOAD => "LOAD" ,
149
+ libc:: PT_DYNAMIC => "DYNAMIC" ,
150
+ libc:: PT_INTERP => "INTERP" ,
151
+ libc:: PT_NOTE => "NOTE" ,
152
+ libc:: PT_SHLIB => "SHLIB" ,
153
+ libc:: PT_PHDR => "PHDR" ,
154
+ libc:: PT_TLS => "TLS" ,
155
+ libc:: PT_GNU_EH_FRAME => "GNU_EH_FRAME" ,
156
+ libc:: PT_GNU_STACK => "GNU_STACK" ,
157
+ libc:: PT_GNU_RELRO => "GNU_RELRO" ,
173
158
_ => "(unknown segment type)" ,
174
159
}
175
160
}
@@ -179,12 +164,12 @@ impl<'a> SegmentTrait for Segment<'a> {
179
164
fn is_code ( & self ) -> bool {
180
165
let hdr = self . phdr ( ) ;
181
166
// 0x1 is PT_X for executable
182
- hdr. p_type == PT_LOAD && ( hdr. p_flags & 0x1 ) != 0
167
+ hdr. p_type == libc :: PT_LOAD && ( hdr. p_flags & 0x1 ) != 0
183
168
}
184
169
185
170
#[ inline]
186
171
fn is_load ( & self ) -> bool {
187
- self . phdr ( ) . p_type == PT_LOAD
172
+ self . phdr ( ) . p_type == libc :: PT_LOAD
188
173
}
189
174
190
175
#[ inline]
0 commit comments