summaryrefslogtreecommitdiffstats
path: root/libebl/libeblP.h
diff options
context:
space:
mode:
authorRoland McGrath <[email protected]>2005-11-16 01:57:40 +0000
committerRoland McGrath <[email protected]>2005-11-16 01:57:40 +0000
commitcd60ea83050d9fb48c3204005f475df460f433b6 (patch)
treee083a367ff3c5598999f3fe23df1fba35681ef31 /libebl/libeblP.h
parent1b8b446a794ac4babfd687ca48de32e5f4aaa539 (diff)
Revamp libebl/common-reloc.c code to share source at compile time only and not extend the libebl.a behavior itself.
Diffstat (limited to 'libebl/libeblP.h')
-rw-r--r--libebl/libeblP.h88
1 files changed, 7 insertions, 81 deletions
diff --git a/libebl/libeblP.h b/libebl/libeblP.h
index e3696f96..134b600a 100644
--- a/libebl/libeblP.h
+++ b/libebl/libeblP.h
@@ -29,91 +29,17 @@ struct ebl
const char *emulation;
/* ELF machine, class, and data encoding. */
- int machine;
- int class;
- int data;
+ uint_fast16_t machine;
+ uint_fast8_t class;
+ uint_fast8_t data;
/* The libelf handle (if known). */
Elf *elf;
- /* Return symbol representaton of object file type. */
- const char *(*object_type_name) (int, char *, size_t);
-
- /* Return symbolic representation of relocation type. */
- const char *(*reloc_type_name) (int, char *, size_t);
-
- /* Check relocation type. */
- bool (*reloc_type_check) (int);
-
- /* Check if relocation type is for simple absolute relocations. */
- Elf_Type (*reloc_simple_type) (Elf *, int);
-
- /* Check relocation type use. */
- bool (*reloc_valid_use) (Elf *, int);
-
- /* Return true if the symbol type is that referencing the GOT. */
- bool (*gotpc_reloc_check) (Elf *, int);
-
- /* Return symbolic representation of segment type. */
- const char *(*segment_type_name) (int, char *, size_t);
-
- /* Return symbolic representation of section type. */
- const char *(*section_type_name) (int, char *, size_t);
-
- /* Return section name. */
- const char *(*section_name) (int, int, char *, size_t);
-
- /* Return next machine flag name. */
- const char *(*machine_flag_name) (GElf_Word *);
-
- /* Check whether machine flags are valid. */
- bool (*machine_flag_check) (GElf_Word);
-
- /* Return symbolic representation of symbol type. */
- const char *(*symbol_type_name) (int, char *, size_t);
-
- /* Return symbolic representation of symbol binding. */
- const char *(*symbol_binding_name) (int, char *, size_t);
-
- /* Return symbolic representation of dynamic tag. */
- const char *(*dynamic_tag_name) (int64_t, char *, size_t);
-
- /* Check dynamic tag. */
- bool (*dynamic_tag_check) (int64_t);
-
- /* Combine section header flags values. */
- GElf_Word (*sh_flags_combine) (GElf_Word, GElf_Word);
-
- /* Return symbolic representation of OS ABI. */
- const char *(*osabi_name) (int, char *, size_t);
-
- /* Name of a note entry type for core files. */
- const char *(*core_note_type_name) (uint32_t, char *, size_t);
-
- /* Name of a note entry type for object files. */
- const char *(*object_note_type_name) (uint32_t, char *, size_t);
-
- /* Handle core note. */
- bool (*core_note) (const char *, uint32_t, uint32_t, const char *);
-
- /* Handle object file note. */
- bool (*object_note) (const char *, uint32_t, uint32_t, const char *);
-
- /* Check section name for being that of a debug informatino section. */
- bool (*debugscn_p) (const char *);
-
- /* Check whether given relocation is a copy relocation. */
- bool (*copy_reloc_p) (int);
-
- /* Check whether given symbol's value is ok despite normal checks. */
- bool (*check_special_symbol) (Elf *, GElf_Ehdr *, const GElf_Sym *,
- const char *, const GElf_Shdr *);
-
- /* Check if backend uses a bss PLT in this file. */
- bool (*bss_plt_p) (Elf *, GElf_Ehdr *);
-
- /* Destructor for ELF backend handle. */
- void (*destr) (struct ebl *);
+ /* See ebl-hooks.h for the declarations of the hook functions. */
+# define EBLHOOK(name) (*name)
+# include "ebl-hooks.h"
+# undef EBLHOOK
/* Internal data. */
void *dlhandle;