Merged in yann_rouillard/pyelftools/syminfo (pull request #13)
[pyelftools.git] / elftools / elf / constants.py
1 #-------------------------------------------------------------------------------
2 # elftools: elf/constants.py
3 #
4 # Constants and flags, placed into classes for namespacing
5 #
6 # Eli Bendersky (eliben@gmail.com)
7 # This code is in the public domain
8 #-------------------------------------------------------------------------------
9 class SHN_INDICES(object):
10 """ Special section indices
11 """
12 SHN_UNDEF=0
13 SHN_LORESERVE=0xff00
14 SHN_LOPROC=0xff00
15 SHN_HIPROC=0xff1f
16 SHN_ABS=0xfff1
17 SHN_COMMON=0xfff2
18 SHN_HIRESERVE=0xffff
19
20
21 class SH_FLAGS(object):
22 """ Flag values for the sh_flags field of section headers
23 """
24 SHF_WRITE=0x1
25 SHF_ALLOC=0x2
26 SHF_EXECINSTR=0x4
27 SHF_MERGE=0x10
28 SHF_STRINGS=0x20
29 SHF_INFO_LINK=0x40
30 SHF_LINK_ORDER=0x80
31 SHF_OS_NONCONFORMING=0x100
32 SHF_GROUP=0x200
33 SHF_TLS=0x400
34 SHF_MASKOS=0x0ff00000
35 SHF_EXCLUDE=0x80000000
36 SHF_MASKPROC=0xf0000000
37
38
39 class P_FLAGS(object):
40 """ Flag values for the p_flags field of program headers
41 """
42 PF_X=0x1
43 PF_W=0x2
44 PF_R=0x4
45 PF_MASKOS=0x00FF0000
46 PF_MASKPROC=0xFF000000
47
48
49 # symbol info flags for entries
50 # in the .SUNW_syminfo section
51 class SYMINFO_FLAGS(object):
52 """ Flags for the si_flags field of entries
53 in the .SUNW_syminfo section
54 """
55 SYMINFO_FLG_DIRECT=0x1
56 SYMINFO_FLG_FILTER=0x2
57 SYMINFO_FLG_COPY=0x4
58 SYMINFO_FLG_LAZYLOAD=0x8
59 SYMINFO_FLG_DIRECTBIND=0x10
60 SYMINFO_FLG_NOEXTDIRECT=0x20
61 SYMINFO_FLG_AUXILIARY=0x40
62 SYMINFO_FLG_INTERPOSE=0x80
63 SYMINFO_FLG_CAP=0x100
64 SYMINFO_FLG_DEFERRED=0x200