2023-06-26 19:45:16 +02:00
|
|
|
#pragma once
|
2023-11-06 00:11:54 +01:00
|
|
|
|
|
|
|
#include "core/loader/elf.h"
|
|
|
|
#include "core/loader/symbols_resolver.h"
|
2023-07-13 11:56:36 +02:00
|
|
|
|
2024-02-23 21:57:57 +01:00
|
|
|
#define LIB_FUNCTION(nid, lib, libversion, mod, moduleVersionMajor, moduleVersionMinor, function) \
|
|
|
|
{ \
|
|
|
|
Loader::SymbolRes sr{}; \
|
|
|
|
sr.name = nid; \
|
|
|
|
sr.library = lib; \
|
|
|
|
sr.library_version = libversion; \
|
|
|
|
sr.module = mod; \
|
|
|
|
sr.module_version_major = moduleVersionMajor; \
|
|
|
|
sr.module_version_minor = moduleVersionMinor; \
|
|
|
|
sr.type = STT_FUN; \
|
|
|
|
auto func = reinterpret_cast<u64>(function); \
|
|
|
|
sym->AddSymbol(sr, func); \
|
2023-07-17 12:53:27 +02:00
|
|
|
}
|
2023-07-27 16:56:57 +02:00
|
|
|
|
2024-02-23 21:57:57 +01:00
|
|
|
#define LIB_OBJ(nid, lib, libversion, mod, moduleVersionMajor, moduleVersionMinor, function) \
|
|
|
|
{ \
|
|
|
|
Loader::SymbolRes sr{}; \
|
|
|
|
sr.name = nid; \
|
|
|
|
sr.library = lib; \
|
|
|
|
sr.library_version = libversion; \
|
|
|
|
sr.module = mod; \
|
|
|
|
sr.module_version_major = moduleVersionMajor; \
|
|
|
|
sr.module_version_minor = moduleVersionMinor; \
|
|
|
|
sr.type = STT_OBJECT; \
|
|
|
|
auto func = reinterpret_cast<u64>(function); \
|
|
|
|
sym->AddSymbol(sr, func); \
|
2023-07-27 16:56:57 +02:00
|
|
|
}
|
|
|
|
|
2024-02-23 21:57:57 +01:00
|
|
|
#define PRINT_FUNCTION_NAME() \
|
|
|
|
{ LOG_INFO_IF(true, "{}()\n", __func__); }
|
|
|
|
|
|
|
|
#define PRINT_DUMMY_FUNCTION_NAME() \
|
2023-08-17 09:10:13 +02:00
|
|
|
{ LOG_WARN_IF(true, "dummy {}()\n", __func__); }
|
2023-07-27 16:56:57 +02:00
|
|
|
|
2023-11-06 00:11:54 +01:00
|
|
|
namespace Core::Libraries {
|
|
|
|
|
|
|
|
void InitHLELibs(Loader::SymbolsResolver* sym);
|
|
|
|
|
|
|
|
} // namespace Core::Libraries
|