diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2024-11-26 22:36:04 +0100 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2024-11-26 22:36:04 +0100 |
| commit | 72f8efd2f571e98796c0953066cbe8c461ccd666 (patch) | |
| tree | b7a51f9edb83bae156aa3314335b80965b906d61 /src/module.c | |
| parent | 65b3c69b4be9f826d71cffe3d333397adee5d4fd (diff) | |
Put module.h content in module.c
Diffstat (limited to 'src/module.c')
| -rw-r--r-- | src/module.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/module.c b/src/module.c new file mode 100644 index 0000000..8188665 --- /dev/null +++ b/src/module.c @@ -0,0 +1,23 @@ +struct module { + void* base_addr; + IMAGE_DOS_HEADER dos_header; + IMAGE_NT_HEADERS64 nt_header; + u8 name[256U]; +}; + +struct module modules[64U] = { 0U }; +u64 modules_list = ~0ULL; + +u8 add_module() { +// struct module* add_module() { + assert(!modules_list); + u32 module_index = 0U; + _BitScanForward64((unsigned long*)&module_index, modules_list); + modules_list ^= (u64)(0x1 << module_index); + + return (u8)module_index; +}; + +void remove_module(u8 index) { + modules_list |= (u64)(0x1 << (((i8)index) - 1U)); +} |
