summaryrefslogtreecommitdiffstats
path: root/lib/libelf/elf_phnum.c
diff options
context:
space:
mode:
authorkaiw <kaiw@FreeBSD.org>2010-07-21 12:14:50 +0000
committerkaiw <kaiw@FreeBSD.org>2010-07-21 12:14:50 +0000
commit82c6a0d5cc52ec43523cf92cde5b8f83a24a9dba (patch)
treec51322098a7ff392aeb36ee7f884e6c98b223c94 /lib/libelf/elf_phnum.c
parent1b382f295a0ad2611d29740a5e9cd23ef4a767c1 (diff)
downloadFreeBSD-src-82c6a0d5cc52ec43523cf92cde5b8f83a24a9dba.zip
FreeBSD-src-82c6a0d5cc52ec43523cf92cde5b8f83a24a9dba.tar.gz
* Deprecate `elf_getshnum()`, `elf_getphnum()` and `elf_getshstrndx()` in
favour of `elf_getshdrnum()`, `elf_getphdrnum()` and `elf_getshdrstrndx()` respectively. * Add new manual pages for `elf_getshdrstrndx()`, `elf_getphdrnum()` and `elf_getshdrnum()`. * Add a deprecation warning for `elf_getshstrndx()`, `elf_getphnum()` and `elf_getshnum()`. Obtained from: elftoolchain MFC after: 1 month
Diffstat (limited to 'lib/libelf/elf_phnum.c')
-rw-r--r--lib/libelf/elf_phnum.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/lib/libelf/elf_phnum.c b/lib/libelf/elf_phnum.c
index ff10c7e..4ec108e 100644
--- a/lib/libelf/elf_phnum.c
+++ b/lib/libelf/elf_phnum.c
@@ -32,8 +32,8 @@ __FBSDID("$FreeBSD$");
#include "_libelf.h"
-int
-elf_getphnum(Elf *e, size_t *phnum)
+static int
+_libelf_getphdrnum(Elf *e, size_t *phnum)
{
void *eh;
int ec;
@@ -41,13 +41,26 @@ elf_getphnum(Elf *e, size_t *phnum)
if (e == NULL || e->e_kind != ELF_K_ELF ||
((ec = e->e_class) != ELFCLASS32 && ec != ELFCLASS64)) {
LIBELF_SET_ERROR(ARGUMENT, 0);
- return (0);
+ return (-1);
}
if ((eh = _libelf_ehdr(e, ec, 0)) == NULL)
- return (0);
+ return (-1);
*phnum = e->e_u.e_elf.e_nphdr;
- return (1);
+ return (0);
+}
+
+int
+elf_getphdrnum(Elf *e, size_t *phnum)
+{
+ return (_libelf_getphdrnum(e, phnum));
+}
+
+/* Deprecated API */
+int
+elf_getphnum(Elf *e, size_t *phnum)
+{
+ return (_libelf_getphdrnum(e, phnum) >= 0);
}
OpenPOWER on IntegriCloud