diff options
Diffstat (limited to 'libebl')
| -rw-r--r-- | libebl/Makefile.am | 2 | ||||
| -rw-r--r-- | libebl/ebl-hooks.h | 5 | ||||
| -rw-r--r-- | libebl/eblopenbackend.c | 1 | ||||
| -rw-r--r-- | libebl/libeblP.h | 1 |
4 files changed, 8 insertions, 1 deletions
diff --git a/libebl/Makefile.am b/libebl/Makefile.am index 993800ca..2cf570e7 100644 --- a/libebl/Makefile.am +++ b/libebl/Makefile.am @@ -34,7 +34,7 @@ AM_CFLAGS += -fpic -Wall -Wshadow -Werror -Wunused -Wextra -Wformat=2 \ -std=gnu99 INCLUDES = -I$(srcdir) -I$(top_srcdir)/libelf -I$(top_srcdir)/libdw \ - -I$(top_srcdir)/lib -I.. + -I$(top_srcdir)/lib -I.. -I$(srcdir)/../libasm VERSION = 1 PACKAGE_VERSION = @PACKAGE_VERSION@ LIBEBL_SUBDIR = @LIBEBL_SUBDIR@ diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h index d466a1f3..c0c929bd 100644 --- a/libebl/ebl-hooks.h +++ b/libebl/ebl-hooks.h @@ -148,6 +148,11 @@ ssize_t EBLHOOK(register_info) (Ebl *ebl, const char **prefix, const char **setname, int *bits, int *type); + /* Disassembler function. */ +int EBLHOOK(disasm) (const uint8_t **startp, const uint8_t *end, + GElf_Addr addr, const char *fmt, DisasmOutputCB_t outcb, + DisasmGetSymCB_t symcb, void *outcbarg, void *symcbarg); + /* Destructor for ELF backend handle. */ void EBLHOOK(destr) (struct ebl *); diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c index 63e64a10..8a44f904 100644 --- a/libebl/eblopenbackend.c +++ b/libebl/eblopenbackend.c @@ -246,6 +246,7 @@ fill_defaults (Ebl *result) result->bss_plt_p = default_bss_plt_p; result->return_value_location = default_return_value_location; result->register_info = default_register_info; + result->disasm = NULL; result->destr = default_destr; result->sysvhash_entrysize = sizeof (Elf32_Word); } diff --git a/libebl/libeblP.h b/libebl/libeblP.h index 7bb4c376..7bfa650f 100644 --- a/libebl/libeblP.h +++ b/libebl/libeblP.h @@ -51,6 +51,7 @@ #define _LIBEBLP_H 1 #include <gelf.h> +#include <libasm.h> #include <libebl.h> #include <libintl.h> |
