diff options
| author | Roland McGrath <[email protected]> | 2005-11-16 01:57:40 +0000 |
|---|---|---|
| committer | Roland McGrath <[email protected]> | 2005-11-16 01:57:40 +0000 |
| commit | cd60ea83050d9fb48c3204005f475df460f433b6 (patch) | |
| tree | e083a367ff3c5598999f3fe23df1fba35681ef31 /libebl/ebl-hooks.h | |
| parent | 1b8b446a794ac4babfd687ca48de32e5f4aaa539 (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/ebl-hooks.h')
| -rw-r--r-- | libebl/ebl-hooks.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/libebl/ebl-hooks.h b/libebl/ebl-hooks.h new file mode 100644 index 00000000..1056c42b --- /dev/null +++ b/libebl/ebl-hooks.h @@ -0,0 +1,91 @@ +/* Backend hook signatures internal interface for libebl. + Copyright (C) 2000, 2001, 2002, 2004, 2005 Red Hat, Inc. + + This program is Open Source software; you can redistribute it and/or + modify it under the terms of the Open Software License version 1.0 as + published by the Open Source Initiative. + + You should have received a copy of the Open Software License along + with this program; if not, you may obtain a copy of the Open Software + License version 1.0 from http://www.opensource.org/licenses/osl.php or + by writing the Open Source Initiative c/o Lawrence Rosen, Esq., + 3001 King Ranch Road, Ukiah, CA 95482. */ + +/* Return symbol representaton of object file type. */ +const char *EBLHOOK(object_type_name) (int, char *, size_t); + +/* Return symbolic representation of relocation type. */ +const char *EBLHOOK(reloc_type_name) (int, char *, size_t); + +/* Check relocation type. */ +bool EBLHOOK(reloc_type_check) (int); + +/* Check if relocation type is for simple absolute relocations. */ +Elf_Type EBLHOOK(reloc_simple_type) (Ebl *, int); + +/* Check relocation type use. */ +bool EBLHOOK(reloc_valid_use) (Elf *, int); + +/* Return true if the symbol type is that referencing the GOT. */ +bool EBLHOOK(gotpc_reloc_check) (Elf *, int); + +/* Return symbolic representation of segment type. */ +const char *EBLHOOK(segment_type_name) (int, char *, size_t); + +/* Return symbolic representation of section type. */ +const char *EBLHOOK(section_type_name) (int, char *, size_t); + +/* Return section name. */ +const char *EBLHOOK(section_name) (int, int, char *, size_t); + +/* Return next machine flag name. */ +const char *EBLHOOK(machine_flag_name) (GElf_Word *); + +/* Check whether machine flags are valid. */ +bool EBLHOOK(machine_flag_check) (GElf_Word); + +/* Return symbolic representation of symbol type. */ +const char *EBLHOOK(symbol_type_name) (int, char *, size_t); + +/* Return symbolic representation of symbol binding. */ +const char *EBLHOOK(symbol_binding_name) (int, char *, size_t); + +/* Return symbolic representation of dynamic tag. */ +const char *EBLHOOK(dynamic_tag_name) (int64_t, char *, size_t); + +/* Check dynamic tag. */ +bool EBLHOOK(dynamic_tag_check) (int64_t); + +/* Combine section header flags values. */ +GElf_Word EBLHOOK(sh_flags_combine) (GElf_Word, GElf_Word); + +/* Return symbolic representation of OS ABI. */ +const char *EBLHOOK(osabi_name) (int, char *, size_t); + +/* Name of a note entry type for core files. */ +const char *EBLHOOK(core_note_type_name) (uint32_t, char *, size_t); + +/* Name of a note entry type for object files. */ +const char *EBLHOOK(object_note_type_name) (uint32_t, char *, size_t); + +/* Handle core note. */ +bool EBLHOOK(core_note) (const char *, uint32_t, uint32_t, const char *); + +/* Handle object file note. */ +bool EBLHOOK(object_note) (const char *, uint32_t, uint32_t, const char *); + +/* Check section name for being that of a debug informatino section. */ +bool EBLHOOK(debugscn_p) (const char *); + +/* Check whether given relocation is a copy relocation. */ +bool EBLHOOK(copy_reloc_p) (int); + +/* Check whether given symbol's value is ok despite normal checks. */ +bool EBLHOOK(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 EBLHOOK(bss_plt_p) (Elf *, GElf_Ehdr *); + +/* Destructor for ELF backend handle. */ +void EBLHOOK(destr) (struct ebl *); |
