接着上个

This commit is contained in:
2026-04-23 20:00:47 +08:00
parent 088dab5a72
commit 43557b6d71
91 changed files with 23911 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
#ifndef CLKS_ELF64_H
#define CLKS_ELF64_H
#include <clks/types.h>
#define CLKS_ELF64_MAX_SEGMENTS 16U
#define CLKS_ELF64_PT_LOAD 1U
struct clks_elf64_info {
u64 entry;
u16 phnum;
u16 loadable_segments;
u64 total_load_memsz;
};
struct clks_elf64_loaded_segment {
void *base;
u64 vaddr;
u64 memsz;
u64 filesz;
u32 flags;
};
struct clks_elf64_loaded_image {
u64 entry;
void *image_base;
u64 image_size;
u64 image_vaddr_base;
u16 segment_count;
struct clks_elf64_loaded_segment segments[CLKS_ELF64_MAX_SEGMENTS];
};
clks_bool clks_elf64_validate(const void *image, u64 size);
clks_bool clks_elf64_inspect(const void *image, u64 size, struct clks_elf64_info *out_info);
clks_bool clks_elf64_load(const void *image, u64 size, struct clks_elf64_loaded_image *out_loaded);
void clks_elf64_unload(struct clks_elf64_loaded_image *loaded);
void *clks_elf64_entry_pointer(const struct clks_elf64_loaded_image *loaded, u64 entry);
#endif