Skip to content

Commit 00cf317

Browse files
Merge pull request #34 from ahmedcharles/elf
Use u64, even on 32-bit to support reading elf-64 files.
2 parents 2ac3315 + 573866e commit 00cf317

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

src/elf_sections.rs

+19-19
Original file line numberDiff line numberDiff line change
@@ -156,15 +156,15 @@ impl ElfSection {
156156
str::from_utf8(unsafe { slice::from_raw_parts(name_ptr, strlen) }).unwrap()
157157
}
158158

159-
pub fn start_address(&self) -> usize {
159+
pub fn start_address(&self) -> u64 {
160160
self.get().addr()
161161
}
162162

163-
pub fn end_address(&self) -> usize {
163+
pub fn end_address(&self) -> u64 {
164164
self.get().addr() + self.get().size()
165165
}
166166

167-
pub fn size(&self) -> usize {
167+
pub fn size(&self) -> u64 {
168168
self.get().size()
169169
}
170170

@@ -198,11 +198,11 @@ trait ElfSectionInner {
198198

199199
fn typ(&self) -> u32;
200200

201-
fn flags(&self) -> u32;
201+
fn flags(&self) -> u64;
202202

203-
fn addr(&self) -> usize;
203+
fn addr(&self) -> u64;
204204

205-
fn size(&self) -> usize;
205+
fn size(&self) -> u64;
206206
}
207207

208208
impl ElfSectionInner for ElfSectionInner32 {
@@ -214,16 +214,16 @@ impl ElfSectionInner for ElfSectionInner32 {
214214
self.typ
215215
}
216216

217-
fn flags(&self) -> u32 {
218-
self.flags
217+
fn flags(&self) -> u64 {
218+
self.flags.into()
219219
}
220220

221-
fn addr(&self) -> usize {
222-
self.addr as usize
221+
fn addr(&self) -> u64 {
222+
self.addr.into()
223223
}
224224

225-
fn size(&self) -> usize {
226-
self.size as usize
225+
fn size(&self) -> u64 {
226+
self.size.into()
227227
}
228228
}
229229

@@ -236,16 +236,16 @@ impl ElfSectionInner for ElfSectionInner64 {
236236
self.typ
237237
}
238238

239-
fn flags(&self) -> u32 {
240-
self.flags as u32
239+
fn flags(&self) -> u64 {
240+
self.flags
241241
}
242242

243-
fn addr(&self) -> usize {
244-
self.addr as usize
243+
fn addr(&self) -> u64 {
244+
self.addr
245245
}
246246

247-
fn size(&self) -> usize {
248-
self.size as usize
247+
fn size(&self) -> u64 {
248+
self.size
249249
}
250250
}
251251

@@ -269,7 +269,7 @@ pub enum ElfSectionType {
269269
}
270270

271271
bitflags! {
272-
pub struct ElfSectionFlags: u32 {
272+
pub struct ElfSectionFlags: u64 {
273273
const WRITABLE = 0x1;
274274
const ALLOCATED = 0x2;
275275
const EXECUTABLE = 0x4;

0 commit comments

Comments
 (0)