OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [tools/] [pyelf/] [pyelf.py] - Blame information for rev 3

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 drasko
import mmap
2
import os
3
 
4
class ELF:
5
    EI_MAGIC = "\x7fELF"
6
 
7
    def __init__(self, name):
8
        f = file(name, "rb")
9
        size = os.stat(name).st_size
10
 
11
        self.data = mmap.mmap(f.fileno(), size, mmap.MAP_PRIVATE, mmap.PROT_READ)
12
 
13
        if self.magic != self.EI_MAGIC:
14
            raise "Not an elf"
15
 
16
    def get_magic(self):
17
        return self.data[:4]
18
    magic = property(get_magic)
19
 
20
    def get_class(self):
21
        return self.data[4]
22
    elf_class = property(get_class)
23
 
24
 
25
 
26
"Test suite"
27
 
28
x = ELF("a.out")
29
 
30
# Check can load an elf
31
success = 1
32
try:
33
    x = ELF("a.out")
34
except:
35
    success = 0
36
assert success
37
 
38
# CHeck can't load not and elf
39
success = 0
40
try:
41
    x = ELF("pyelf.py")
42
except:
43
    success = 1
44
 
45
assert success

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.