summaryrefslogtreecommitdiff
path: root/libebl/libebl.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2005-11-17 03:16:00 +0000
committerRoland McGrath <roland@redhat.com>2005-11-17 03:16:00 +0000
commite47ab76f02c2a4f4d802ec298969ba67956435fe (patch)
tree39dccb25273f15a488632c952738909f860c4b71 /libebl/libebl.h
parentd7f8d0caa7a357f9f4765e5dc93255f5057eba2e (diff)
downloadelfutils-e47ab76f02c2a4f4d802ec298969ba67956435fe.tar.gz
Update new test after merge.
Diffstat (limited to 'libebl/libebl.h')
-rw-r--r--libebl/libebl.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/libebl/libebl.h b/libebl/libebl.h
index 1f9a5a25..7e91b308 100644
--- a/libebl/libebl.h
+++ b/libebl/libebl.h
@@ -15,6 +15,7 @@
#define _LIBEBL_H 1
#include <gelf.h>
+#include "libdw.h"
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
@@ -156,6 +157,19 @@ extern bool ebl_section_strip_p (Ebl *ebl, const GElf_Ehdr *ehdr,
/* Check if backend uses a bss PLT in this file. */
extern bool ebl_bss_plt_p (Ebl *ebl, GElf_Ehdr *ehdr);
+/* Return location expression to find return value given a
+ DW_TAG_subprogram, DW_TAG_subroutine_type, or similar DIE describing
+ function itself (whose DW_AT_type attribute describes its return type).
+ Returns -1 for a libdw error (see dwarf_errno).
+ Returns -2 for an unrecognized type formation.
+ Returns zero if the function has no return value (e.g. "void" in C).
+ Otherwise, *LOCOPS gets a location expression to find the return value,
+ and returns the number of operations in the expression. The pointer is
+ permanently allocated at least as long as the Ebl handle is open. */
+extern int ebl_return_value_location (Ebl *ebl,
+ Dwarf_Die *functypedie,
+ const Dwarf_Op **locops);
+
/* ELF string table handling. */
struct Ebl_Strtab;