TuxSH 7074ac1166 Move hb:ldr from Rosalina to Loader
Let's not pretend in 2022 that it needed things from rosalina sysmodule
- it did not.

This moves 3DSX loading from Rosalina to Loader, and also removes all
the dependencies Loader had to other Luma3DS components (if kernel ext.
is missing, a default config will be used). This means that, as long as
you replace Loader to the one in here, you will be able to properly load
3DSX files.

Changes:
- hb:ldr is now hosted in loader
- hb:ldr LoadProcess, PatchExHeaderInfo, DebugNextApplicationByForce:
  all removed
- fix a bug where some malformed 3DSX files were not rejected
- grant access to CONFIG11 registers to 3DSX homebrew
- move dirty homebrew chainload (when HM. isn't loaded nor loadable) to
  pm
- pm:dbg (ext.) PrepareToChainloadHomebrew: removed
2022-12-25 23:27:48 +01:00

24 lines
642 B
C

#pragma once
#include <3ds/types.h>
#include "process_data.h"
typedef struct Manager {
ProcessList processList;
ProcessData *runningApplicationData;
ProcessData *debugData; // note: official PM uses runningApplicationData for both, and has queuedApplicationProcessHandle
Handle reslimits[4];
Handle newProcessEvent;
Handle allNotifiedTerminationEvent;
bool waitingForTermination;
bool preparingForReboot;
u8 maxAppCpuTime;
s8 cpuTimeBase;
} Manager;
extern Manager g_manager;
void Manager_Init(void *procBuf, size_t numProc);
void Manager_RegisterKips(void);
Result UnregisterProcess(u64 titleId);