|  | FD.io VPP
    v17.01.1-3-gc6833f8
    Vector Packet Processing | 
 Include dependency graph for elf.h:
 Include dependency graph for elf.h: This graph shows which files directly or indirectly include this file:
 This graph shows which files directly or indirectly include this file:Go to the source code of this file.
| Data Structures | |
| struct | elf_first_header_t | 
| struct | elf32_file_header_t | 
| struct | elf64_file_header_t | 
| struct | elf32_section_header_t | 
| struct | elf64_section_header_t | 
| struct | elf32_segment_header_t | 
| struct | elf64_segment_header_t | 
| struct | elf32_symbol_t | 
| struct | elf64_symbol_t | 
| struct | elf_symbol_info_t | 
| struct | elf32_relocation_t | 
| struct | elf64_relocation_t | 
| struct | elf_relocation_with_addend_t | 
| struct | elf32_dynamic_entry_t | 
| struct | elf64_dynamic_entry_t | 
| struct | elf_dynamic_version_definition_t | 
| struct | elf_dynamic_version_definition_aux_t | 
| struct | elf_dynamic_version_need_t | 
| struct | elf_dynamic_version_need_aux_t | 
| union | elf_dynamic_version_need_union_t | 
| struct | elf_note_t | 
| struct | elf_symbol_table_t | 
| struct | elf_relocation_table_t | 
| struct | elf_section_t | 
| struct | elf_segment_t | 
| struct | elf_main_t | 
| Macros | |
| #define | foreach_elf_file_class _ (CLASS_NONE) _ (32BIT) _ (64BIT) | 
| #define | foreach_elf_data_encoding | 
| #define | ELF_VERSION_NONE (0) | 
| #define | ELF_VERSION_CURRENT (1) | 
| #define | foreach_elf_abi | 
| #define | foreach_elf_file_type | 
| #define | foreach_elf_architecture | 
| #define | foreach_elf32_file_header | 
| #define | foreach_elf64_file_header | 
| #define | foreach_elf32_section_header | 
| #define | foreach_elf64_section_header | 
| #define | foreach_elf32_segment_header | 
| #define | foreach_elf64_segment_header | 
| #define | foreach_elf32_symbol_header | 
| #define | foreach_elf64_symbol_header | 
| #define | foreach_elf_symbol_reserved_section_index | 
| #define | ELF_SYMBOL_SECTION_RESERVED_LO 0xff00 | 
| #define | ELF_SYMBOL_SECTION_RESERVED_HI 0xffff | 
| #define | ELF_SYMBOL_SECTION_ARCH_SPECIFIC_LO 0xff00 | 
| #define | ELF_SYMBOL_SECTION_ARCH_SPECIFIC_HI 0xff1f | 
| #define | ELF_SYMBOL_SECTION_OS_SPECIFIC_LO 0xff20 | 
| #define | ELF_SYMBOL_SECTION_OS_SPECIFIC_HI 0xff3f | 
| #define | foreach_elf_section_type | 
| #define | foreach_elf_section_flag | 
| #define | foreach_elf_symbol_binding | 
| #define | foreach_elf_symbol_type | 
| #define | foreach_elf_symbol_visibility | 
| #define | foreach_elf_symbol_info_bound_to | 
| #define | foreach_elf_symbol_info_flags | 
| #define | elf_relocation_next(r, type) | 
| #define | foreach_elf_segment_type | 
| #define | foreach_elf_segment_flag | 
| #define | foreach_elf32_dynamic_entry_header | 
| #define | foreach_elf64_dynamic_entry_header | 
| #define | foreach_elf_dynamic_entry_type | 
| #define | ELF_DYNAMIC_FLAGS_ORIGIN (1 << 0) /* Object may use DF_ORIGIN */ | 
| #define | ELF_DYNAMIC_FLAGS_SYMBOLIC (1 << 1) /* Symbol resolutions starts here */ | 
| #define | ELF_DYNAMIC_FLAGS_TEXT_RELOCATIONS (1 << 2) /* Object contains text relocations */ | 
| #define | ELF_DYNAMIC_FLAGS_BIND_NOW (1 << 3) /* No lazy binding for this object */ | 
| #define | ELF_DYNAMIC_FLAGS_STATIC_TLS (1 << 4) /* Module uses the static TLS model */ | 
| #define | DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */ | 
| #define | DF_1_GLOBAL 0x00000002 /* Set RTLD_GLOBAL for this object. */ | 
| #define | DF_1_GROUP 0x00000004 /* Set RTLD_GROUP for this object. */ | 
| #define | DF_1_NODELETE 0x00000008 /* Set RTLD_NODELETE for this object. */ | 
| #define | DF_1_LOADFLTR 0x00000010 /* Trigger filtee loading at runtime. */ | 
| #define | DF_1_INITFIRST 0x00000020 /* Set RTLD_INITFIRST for this object */ | 
| #define | DF_1_NOOPEN 0x00000040 /* Set RTLD_NOOPEN for this object. */ | 
| #define | DF_1_ORIGIN 0x00000080 /* $ORIGIN must be handled. */ | 
| #define | DF_1_DIRECT 0x00000100 /* Direct binding enabled. */ | 
| #define | DF_1_TRANS 0x00000200 | 
| #define | DF_1_INTERPOSE 0x00000400 /* Object is used to interpose. */ | 
| #define | DF_1_NODEFLIB 0x00000800 /* Ignore default lib search path. */ | 
| #define | DF_1_NODUMP 0x00001000 /* Object can't be dldump'ed. */ | 
| #define | DF_1_CONFALT 0x00002000 /* Configuration alternative created. */ | 
| #define | DF_1_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */ | 
| #define | DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */ | 
| #define | DF_1_DISPRELPND 0x00010000 /* Disp reloc applied at run-time. */ | 
| #define | DTF_1_PARINIT 0x00000001 | 
| #define | DTF_1_CONFEXP 0x00000002 | 
| #define | DF_P1_LAZYLOAD 0x00000001 /* Lazyload following object. */ | 
| #define | DF_P1_GROUPPERM | 
| #define | ELF_DYNAMIC_VERSION_FILE (1 << 0) /* Version definition of file itself */ | 
| #define | ELF_DYNAMIC_VERSION_WEAK (1 << 1) /* Weak version identifier */ | 
| #define | ELF_DYNAMIC_VERSYM_LOCAL 0 /* Symbol is local. */ | 
| #define | ELF_DYNAMIC_VERSYM_GLOBAL 1 /* Symbol is global. */ | 
| #define | ELF_DYNAMIC_VERSYM_RESERVED_LO 0xff00 /* Beginning of reserved entries. */ | 
| #define | ELF_DYNAMIC_VERSYM_ELIMINATE 0xff01 /* Symbol is to be eliminated. */ | 
| #define | foreach_elf_dynamic_version_need_field | 
| #define | foreach_elf_dynamic_version_need_aux_field | 
| #define | ELF_NOTE_SOLARIS "SUNW Solaris" | 
| #define | ELF_NOTE_GNU "GNU" | 
| #define | ELF_NOTE_PAGESIZE_HINT 1 | 
| #define | ELF_NOTE_ABI 1 | 
| #define | ELF_NOTE_OS_LINUX 0 | 
| #define | ELF_NOTE_OS_GNU 1 | 
| #define | ELF_NOTE_OS_SOLARIS2 2 | 
| #define | ELF_NOTE_OS_FREEBSD 3 | 
| #define | foreach_elf_x86_64_relocation_type | 
| #define | FORMAT_ELF_MAIN_SYMBOLS (1 << 0) | 
| #define | FORMAT_ELF_MAIN_RELOCATIONS (1 << 1) | 
| #define | FORMAT_ELF_MAIN_DYNAMIC (1 << 2) | 
| Enumerations | |
| enum | elf_file_class_t { ELF_N_FILE_CLASS } | 
| enum | elf_data_encoding_t { ELF_N_DATA_ENCODING } | 
| enum | elf_abi_t { foreach_elf_abi } | 
| enum | elf_file_type_t { foreach_elf_file_type } | 
| enum | elf_architecture_t { foreach_elf_architecture } | 
| enum | elf_section_type_t { ELF_SECTION_OS_SPECIFIC_HI = 0x6fffffff } | 
| enum | elf_section_flag_bit_t { foreach_elf_section_flag } | 
| enum | elf_section_flag_t { foreach_elf_section_flag } | 
| enum | elf_segment_type_t { foreach_elf_segment_type } | 
| enum | elf_segment_flag_bit_t { foreach_elf_segment_flag } | 
| enum | elf_segment_flag_t { foreach_elf_segment_flag } | 
| enum | elf_dynamic_entry_type_t { foreach_elf_dynamic_entry_type } | 
| Variables | |
| format_function_t | format_elf_main | 
| format_function_t | format_elf_symbol | 
| #define DF_1_CONFALT 0x00002000 /* Configuration alternative created. */ | 
| #define DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */ | 
| #define DF_1_DISPRELPND 0x00010000 /* Disp reloc applied at run-time. */ | 
| #define DF_1_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */ | 
| #define DF_1_GLOBAL 0x00000002 /* Set RTLD_GLOBAL for this object. */ | 
| #define DF_1_GROUP 0x00000004 /* Set RTLD_GROUP for this object. */ | 
| #define DF_1_INITFIRST 0x00000020 /* Set RTLD_INITFIRST for this object */ | 
| #define DF_1_INTERPOSE 0x00000400 /* Object is used to interpose. */ | 
| #define DF_1_LOADFLTR 0x00000010 /* Trigger filtee loading at runtime. */ | 
| #define DF_1_NODEFLIB 0x00000800 /* Ignore default lib search path. */ | 
| #define DF_1_NODELETE 0x00000008 /* Set RTLD_NODELETE for this object. */ | 
| #define DF_1_NODUMP 0x00001000 /* Object can't be dldump'ed. */ | 
| #define DF_1_NOOPEN 0x00000040 /* Set RTLD_NOOPEN for this object. */ | 
| #define DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */ | 
| #define DF_P1_GROUPPERM | 
| #define DF_P1_LAZYLOAD 0x00000001 /* Lazyload following object. */ | 
| #define ELF_DYNAMIC_FLAGS_BIND_NOW (1 << 3) /* No lazy binding for this object */ | 
| #define ELF_DYNAMIC_FLAGS_ORIGIN (1 << 0) /* Object may use DF_ORIGIN */ | 
| #define ELF_DYNAMIC_FLAGS_STATIC_TLS (1 << 4) /* Module uses the static TLS model */ | 
| #define ELF_DYNAMIC_FLAGS_SYMBOLIC (1 << 1) /* Symbol resolutions starts here */ | 
| #define ELF_DYNAMIC_FLAGS_TEXT_RELOCATIONS (1 << 2) /* Object contains text relocations */ | 
| #define ELF_DYNAMIC_VERSION_FILE (1 << 0) /* Version definition of file itself */ | 
| #define ELF_DYNAMIC_VERSION_WEAK (1 << 1) /* Weak version identifier */ | 
| #define ELF_DYNAMIC_VERSYM_ELIMINATE 0xff01 /* Symbol is to be eliminated. */ | 
| #define ELF_DYNAMIC_VERSYM_RESERVED_LO 0xff00 /* Beginning of reserved entries. */ | 
| #define elf_relocation_next | ( | r, | |
| type | |||
| ) | 
| #define foreach_elf32_dynamic_entry_header | 
| #define foreach_elf32_file_header | 
| #define foreach_elf32_section_header | 
| #define foreach_elf32_segment_header | 
| #define foreach_elf32_symbol_header | 
| #define foreach_elf64_dynamic_entry_header | 
| #define foreach_elf64_file_header | 
| #define foreach_elf64_section_header | 
| #define foreach_elf64_segment_header | 
| #define foreach_elf64_symbol_header | 
| #define foreach_elf_abi | 
| #define foreach_elf_data_encoding | 
| #define foreach_elf_dynamic_version_need_aux_field | 
| #define foreach_elf_dynamic_version_need_field | 
| #define foreach_elf_file_class _ (CLASS_NONE) _ (32BIT) _ (64BIT) | 
| #define foreach_elf_file_type | 
| foreach_elf_section_flag | 
| #define foreach_elf_section_type | 
| foreach_elf_segment_flag | 
| #define foreach_elf_segment_type | 
| #define foreach_elf_symbol_binding | 
| #define foreach_elf_symbol_info_bound_to | 
| #define foreach_elf_symbol_info_flags | 
| #define foreach_elf_symbol_reserved_section_index | 
| #define foreach_elf_symbol_type | 
| #define foreach_elf_symbol_visibility | 
| #define foreach_elf_x86_64_relocation_type | 
| enum elf_architecture_t | 
| enum elf_data_encoding_t | 
| enum elf_file_class_t | 
| enum elf_file_type_t | 
| enum elf_section_flag_t | 
| enum elf_section_type_t | 
| enum elf_segment_flag_t | 
| enum elf_segment_type_t | 
| void elf_create_section_with_contents | ( | elf_main_t * | em, | 
| char * | section_name, | ||
| elf64_section_header_t * | header, | ||
| void * | contents, | ||
| uword | n_content_bytes | ||
| ) | 
| clib_error_t* elf_delete_named_section | ( | elf_main_t * | em, | 
| char * | section_name | ||
| ) | 
| uword elf_delete_segment_with_type | ( | elf_main_t * | em, | 
| elf_segment_type_t | segment_type | ||
| ) | 
| clib_error_t* elf_get_section_by_name | ( | elf_main_t * | em, | 
| char * | section_name, | ||
| elf_section_t ** | result | ||
| ) | 
| clib_error_t* elf_get_section_by_start_address | ( | elf_main_t * | em, | 
| uword | start_address, | ||
| elf_section_t ** | result | ||
| ) | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| clib_error_t* elf_parse | ( | elf_main_t * | em, | 
| void * | data, | ||
| uword | data_bytes | ||
| ) | 
| void elf_parse_symbols | ( | elf_main_t * | em | ) | 
| clib_error_t* elf_read_file | ( | elf_main_t * | em, | 
| char * | file_name | ||
| ) | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| void elf_set_dynamic_entries | ( | elf_main_t * | em | ) | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| clib_error_t* elf_write_file | ( | elf_main_t * | em, | 
| char * | file_name | ||
| ) | 
| format_function_t format_elf_main | 
| format_function_t format_elf_symbol |