23 lines
1.1 KiB
Markdown
23 lines
1.1 KiB
Markdown
|
# symbol.h
|
||
|
|
||
|
Basic functions to define and resolve symbols.
|
||
|
|
||
|
#### `symbol_type_E` - enum
|
||
|
- **Function**
|
||
|
- **Variable**
|
||
|
- **Unknown**
|
||
|
|
||
|
#### `symbol_T` - struct
|
||
|
|
||
|
| Name | Type | Description |
|
||
|
|---------|---------------|-------------------------------------------------------------------------------------|
|
||
|
| name | string_t | The name of the symbol (e.g. the name of the kernels entry symbol would be `_start` |
|
||
|
| type | symbol_type_E | The symbols type (elf types like `File` are of type `Unknown`) |
|
||
|
| address | uint64_t | The symbols address |
|
||
|
|
||
|
#### `symbol_resolve_from_name(symbols, num_symbols, name);` - function (symbol_T*)
|
||
|
This searches **_symbols_** for a symbol with a matching **_name_**.
|
||
|
|
||
|
#### `symbol_resolve_from_rip(symbols, num_symbols, rip);` - function (symbol_T*)
|
||
|
Give it a list of **_symbols_** and an instruction pointer (**_rip_**) and it will return the symbol (function), where **_rip_** lays in.
|