2023-03-10 10:32:50 +00:00
|
|
|
// This file is part of noxos and licensed under the MIT open source license
|
2023-02-28 20:13:51 +00:00
|
|
|
|
|
|
|
#ifndef NOX_ELF_SYMBOL_H
|
|
|
|
#define NOX_ELF_SYMBOL_H
|
|
|
|
|
|
|
|
#include "utils/stdtypes.h"
|
|
|
|
#include "utils/string.h"
|
|
|
|
|
|
|
|
#define ELF_SYMBOL_TYPE(info) ((info) & 0xF)
|
|
|
|
|
|
|
|
extern string_t g_elf_symbol_type_strings[7];
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
ELF_SYMBOL_NONE,
|
|
|
|
ELF_SYMBOL_OBJECT,
|
|
|
|
ELF_SYMBOL_FUNC,
|
|
|
|
ELF_SYMBOL_SECTION,
|
|
|
|
ELF_SYMBOL_FILE,
|
|
|
|
ELF_SYMBOL_COMMON,
|
|
|
|
ELF_SYMBOL_TLS
|
|
|
|
} elf_symbol_type_E;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint32_t name_offset;
|
|
|
|
uint8_t info;
|
|
|
|
uint8_t other;
|
|
|
|
uint16_t related_section_index;
|
|
|
|
uint64_t value;
|
|
|
|
uint64_t length;
|
|
|
|
} elf_symbol_T;
|
|
|
|
|
|
|
|
#endif //NOX_ELF_SYMBOL_H
|