From 8bf5eb9bc8a1161e561d74382ef327974ed729ff Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo Date: Tue, 24 Mar 2009 16:56:19 -0300 Subject: [PATCH] dutil: Move elf_section_by_name to dutil Will be used by more than one file. Signed-off-by: Arnaldo Carvalho de Melo --- ctf_loader.c | 17 ----------------- dutil.c | 17 +++++++++++++++++ dutil.h | 5 +++++ 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/ctf_loader.c b/ctf_loader.c index b81ea24..8f0365a 100644 --- a/ctf_loader.c +++ b/ctf_loader.c @@ -55,23 +55,6 @@ struct ctf_state { int in_fd; }; -static Elf_Scn *elf_section_by_name(Elf *elf, GElf_Ehdr *ep, - GElf_Shdr *shp, const char *name) -{ - Elf_Scn *sec = NULL; - - while ((sec = elf_nextscn(elf, sec)) != NULL) { - char *str; - - gelf_getshdr(sec, shp); - str = elf_strptr(elf, ep->e_shstrndx, shp->sh_name); - if (!strcmp(name, str)) - break; - } - - return sec; -} - struct elf_sym_iter_state { int (*func)(struct ctf_state *sp, const char *sym_name, int sym_index, int call_index, void *data); diff --git a/dutil.c b/dutil.c index a95c0e1..2e4df75 100644 --- a/dutil.c +++ b/dutil.c @@ -108,3 +108,20 @@ int strlist__has_entry(const struct strlist *self, const char *entry) { return tfind(entry, &self->entries, str_compare) != NULL; } + +Elf_Scn *elf_section_by_name(Elf *elf, GElf_Ehdr *ep, + GElf_Shdr *shp, const char *name) +{ + Elf_Scn *sec = NULL; + + while ((sec = elf_nextscn(elf, sec)) != NULL) { + char *str; + + gelf_getshdr(sec, shp); + str = elf_strptr(elf, ep->e_shstrndx, shp->sh_name); + if (!strcmp(name, str)) + break; + } + + return sec; +} diff --git a/dutil.h b/dutil.h index ff10cbf..d6e59e3 100644 --- a/dutil.h +++ b/dutil.h @@ -13,6 +13,8 @@ #include #include +#include +#include #ifndef __unused #define __unused __attribute__ ((unused)) @@ -55,4 +57,7 @@ int strlist__has_entry(const struct strlist *self, const char *entry); void *zalloc(const size_t size); +Elf_Scn *elf_section_by_name(Elf *elf, GElf_Ehdr *ep, + GElf_Shdr *shp, const char *name); + #endif /* _DUTIL_H_ */