summaryrefslogtreecommitdiff
path: root/include/libelfu
diff options
context:
space:
mode:
authornorly <ny-git@enpas.org>2013-02-23 01:46:32 +0000
committernorly <ny-git@enpas.org>2013-02-23 01:49:43 +0000
commit58b6f8de8862c9ccba763d3607afb5495727e4d6 (patch)
treeca23423174e1238cebc4f77ab3602bf0b8e4864e /include/libelfu
parent7b04e102bb2ad0189f66d4878fe92d6fa22a1990 (diff)
Add run-time sanity checks
Diffstat (limited to 'include/libelfu')
-rw-r--r--include/libelfu/lookup.h4
-rw-r--r--include/libelfu/model.h7
2 files changed, 9 insertions, 2 deletions
diff --git a/include/libelfu/lookup.h b/include/libelfu/lookup.h
index 2cca5df..2506512 100644
--- a/include/libelfu/lookup.h
+++ b/include/libelfu/lookup.h
@@ -7,8 +7,12 @@
#include <libelfu/types.h>
char* elfu_sectionName(Elf *e, Elf_Scn *scn);
+
Elf_Scn* elfu_sectionByName(Elf *e, char *name);
+
Elf_Scn* elfu_firstSectionInSegment(Elf *e, GElf_Phdr *phdr);
Elf_Scn* elfu_lastSectionInSegment(Elf *e, GElf_Phdr *phdr);
+size_t elfu_scnSizeFile(const GElf_Shdr *shdr);
+
#endif
diff --git a/include/libelfu/model.h b/include/libelfu/model.h
index 1b5f6b6..588d57a 100644
--- a/include/libelfu/model.h
+++ b/include/libelfu/model.h
@@ -37,8 +37,7 @@ typedef struct {
CIRCLEQ_HEAD(ScnList, ElfuScn) scnList;
CIRCLEQ_HEAD(PhdrList, ElfuPhdr) phdrList;
- ElfuPhdr *entryBase;
- GElf_Addr *entryOffs;
+ ElfuScn *shstrtab;
} ElfuElf;
@@ -46,6 +45,10 @@ typedef struct {
size_t elfu_countSections(ElfuElf *me);
size_t elfu_countPHDRs(ElfuElf *me);
+char* elfu_modelScnName(ElfuElf *me, ElfuScn *ms);
+
+int elfu_modelCheck(ElfuElf *me);
+
ElfuPhdr* elfu_modelFromPhdr(GElf_Phdr *phdr);
ElfuScn* elfu_modelFromSection(Elf_Scn *scn);
ElfuElf* elfu_modelFromElf(Elf *e);