Remove unnecessarily stored data

This commit is contained in:
2025-05-04 02:02:45 +03:00
parent 487da24e65
commit e86dd4781c
12 changed files with 232 additions and 193 deletions

View File

@@ -8,33 +8,37 @@
struct HiloadContext;
typedef enum {
HI_MODULE_STATE_DIRTY = (1 << 0),
HI_MODULE_STATE_ENABLED = (1 << 0),
HI_MODULE_STATE_DIRTY = (1 << 1),
HI_MODULE_STATE_PATCHABLE = (1 << 6), // non system module we will modify
HI_MODULE_STATE_EXEC = (1 << 7), // denote the current executable
} ModuleFlags;
typedef u8 ModuleInfo;
typedef u32 ModuleInfo;
typedef struct {
const char *name; // Filename
/// Owning. Filename for the module.
const char *name;
/// Handle given by dlopen
void *dlhandle;
/// Start address for the module
uptr address;
/// Additional information, see @a ModuleFlags
ModuleInfo info;
} ModuleData;
vector_def(ModuleData, ModuleData);
static inline ModuleInfo hi_modinfo_add(ModuleInfo flags, ModuleFlags flag) {
static inline ModuleInfo modinfo_add(ModuleInfo flags, ModuleFlags flag) {
return flags | flag;
}
static inline ModuleInfo hi_modinfo_clear(ModuleInfo flags, ModuleFlags flag) {
static inline ModuleInfo modinfo_clear(ModuleInfo flags, ModuleFlags flag) {
return flags & ~flag;
}
static inline bool hi_modinfo_has(ModuleInfo flags, ModuleFlags flag) {
static inline bool modinfo_has(ModuleInfo flags, ModuleFlags flag) {
return (flags & flag) != 0;
}
#define HI_MODINFO_SET(info, flag) ((info) |= flag)
#define HI_MODINFO_CLEAR(info, flag) ((info) &= ~flag)
HiResult moduler_reload(VectorModuleData *modules, ModuleData *module,
VectorMemoryMap *memregs);
HiResult moduler_reload(VectorModuleData *modules, ModuleData *module);