diff options
| author | Jose E. Marchesi <[email protected]> | 2015-12-08 19:10:40 +0100 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2016-01-03 10:26:30 +0100 |
| commit | 42f0df13d7c0b3ec1a547eca84eca694f6d42310 (patch) | |
| tree | 4a909286c3d57ee73d3b39c1e17bd204dec29efb /libebl/libebl.h | |
| parent | a5a354b9d7d4ca8c912945dd708ab465aec67c7f (diff) | |
libebl: new backend attribute ra_offset.
Some backends need to fine-tune the return address as fetched from the
corresponding CFI register. This patch adds a new backend attribute
ra_offset and the corresponding ebl_ra_offset getter function.
Signed-off-by: Jose E. Marchesi <[email protected]>
Diffstat (limited to 'libebl/libebl.h')
| -rw-r--r-- | libebl/libebl.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libebl/libebl.h b/libebl/libebl.h index 7dbf4608..efcb6d60 100644 --- a/libebl/libebl.h +++ b/libebl/libebl.h @@ -422,6 +422,12 @@ extern bool ebl_set_initial_registers_tid (Ebl *ebl, extern size_t ebl_frame_nregs (Ebl *ebl) __nonnull_attribute__ (1); +/* Offset to apply to the value of the return_address_register, as + fetched from a Dwarf CFI. This is used by some backends, where the + return_address_register actually contains the call address. */ +extern int ebl_ra_offset (Ebl *ebl) + __nonnull_attribute__ (1); + /* Mask to use for function symbol or unwind return addresses in case the architecture adds some extra non-address bits to it. This is different from ebl_resolve_sym_value which only works for actual |
