PatchworkOS  28a9544
A non-POSIX operating system.
Loading...
Searching...
No Matches
symbol.h File Reference
#include <kernel/utils/map.h>
#include <boot/boot_info.h>
#include <sys/elf.h>
#include <sys/list.h>

Go to the source code of this file.

Data Structures

struct  symbol_group_t
 
struct  symbol_name_t
 Symbol name mapping structure. More...
 
struct  symbol_addr_t
 Symbol address mapping structure. More...
 
struct  symbol_info_t
 Symbol information structure. More...
 

Macros

#define SYMBOL_MAX_NAME   MAP_KEY_MAX_LENGTH
 Maximum length of a symbol name.
 

Typedefs

typedef uint64_t symbol_group_id_t
 Symbol group identifier type.
 

Functions

symbol_group_id_t symbol_generate_group_id (void)
 Generate a unique symbol group identifier.
 
uint64_t symbol_add (const char *name, void *addr, symbol_group_id_t groupId, Elf64_Symbol_Binding binding, Elf64_Symbol_Type type)
 Add a symbol to the kernel symbol table.
 
void symbol_remove_group (symbol_group_id_t groupId)
 Remove all symbols from the kernel symbol table in the given group.
 
uint64_t symbol_resolve_addr (symbol_info_t *outSymbol, void *addr)
 Resolve a symbol by address.
 
uint64_t symbol_resolve_name (symbol_info_t *outSymbol, const char *name)
 Resolve a symbol by name.