kernel: Implement some functions

This commit is contained in:
IndecisiveTurtle 2024-06-21 18:22:37 +03:00 committed by georgemoralis
parent 7bdaeafdfd
commit 2506a285f4
9 changed files with 69 additions and 12 deletions

View file

@ -12,6 +12,33 @@ namespace Core {
struct DynamicModuleInfo;
class Linker;
class MemoryManager;
struct OrbisKernelMemParam {
u64 size;
u64* extended_page_table;
u64* flexible_memory_size;
u8* extended_memory_1;
u64* extended_gpu_page_table;
u8* extended_memory_2;
u64* exnteded_cpu_page_table;
};
struct OrbisProcParam {
u64 size;
u32 magic;
u32 entry_count;
u64 sdk_version;
char* process_name;
char* main_thread_name;
u32* main_thread_prio;
u32* main_thread_stack_size;
void* libc_param;
OrbisKernelMemParam* mem_param;
void* fs_param;
u32* process_preload_enable;
u64 unknown1;
};
struct EntryParams {
int argc;
@ -30,8 +57,8 @@ public:
return m_hle_symbols;
}
VAddr GetProcParam() const {
return m_modules[0]->GetProcParam();
OrbisProcParam* GetProcParam() const {
return m_modules[0]->GetProcParam<OrbisProcParam*>();
}
Module* GetModule(s32 index) const {
@ -71,6 +98,7 @@ public:
private:
const Module* FindExportedModule(const ModuleInfo& m, const LibraryInfo& l);
MemoryManager* memory;
std::mutex mutex;
u32 dtv_generation_counter{1};
size_t static_tls_size{};