diff options
author | norly <ny-git@enpas.org> | 2013-05-24 07:23:41 +0100 |
---|---|---|
committer | norly <ny-git@enpas.org> | 2013-05-24 07:23:41 +0100 |
commit | 264965b9323f90f1a834fb2d80c362aa91fbb5e5 (patch) | |
tree | 09fbfa898d674060970f5658b0c93b9a502d1693 /include/libelfu/modelops.h | |
parent | b7ab2674931f1bb9a7e6da594f587ae84c293238 (diff) |
Object file injection, first part
Diffstat (limited to 'include/libelfu/modelops.h')
-rw-r--r-- | include/libelfu/modelops.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/include/libelfu/modelops.h b/include/libelfu/modelops.h index 3ce9a90..1cfe0b6 100644 --- a/include/libelfu/modelops.h +++ b/include/libelfu/modelops.h @@ -7,20 +7,35 @@ #include <libelfu/modeltypes.h> +size_t elfu_mScnIndex(ElfuElf *me, ElfuScn *ms); size_t elfu_mCountScns(ElfuElf *me); size_t elfu_mCountPhdrs(ElfuElf *me); char* elfu_mScnName(ElfuElf *me, ElfuScn *ms); +ElfuScn* elfu_mScnFirstInSegment(ElfuElf *me, ElfuPhdr *mp); +ElfuScn* elfu_mScnLastInSegment(ElfuElf *me, ElfuPhdr *mp); + +ElfuScn* elfu_mScnByType(ElfuElf *me, Elf32_Word type); + int elfu_mCheck(ElfuElf *me); +ElfuScn* elfu_mCloneScn(ElfuScn *ms); + + ElfuElf* elfu_mFromElf(Elf *e); void elfu_mToElf(ElfuElf *me, Elf *e); void elfu_mExpandNobits(ElfuElf *me, GElf_Off off); -GElf_Xword elfu_mInsertBefore(ElfuElf *me, GElf_Off off, GElf_Xword size); -GElf_Xword elfu_mInsertAfter(ElfuElf *me, GElf_Off off, GElf_Xword size); +GElf_Xword elfu_mInsertSpaceBefore(ElfuElf *me, GElf_Off off, GElf_Xword size); +GElf_Xword elfu_mInsertSpaceAfter(ElfuElf *me, GElf_Off off, GElf_Xword size); + +void elfu_mInsertScnInChainBefore(ElfuElf *me, ElfuScn *oldscn, ElfuScn *newscn); +void elfu_mInsertScnInChainAfter(ElfuElf *me, ElfuScn *oldscn, ElfuScn *newscn); + + +void elfu_mReladd(ElfuElf *me, ElfuElf *mrel); #endif |