ProcessManager: Implement almost all of pm:shell

This commit is contained in:
Michael Scire
2018-05-04 19:56:59 -06:00
parent bceb00ad8d
commit e596fd0de5
4 changed files with 197 additions and 42 deletions

View File

@@ -31,7 +31,15 @@ class Registration {
u64* out_pid;
Result result;
};
class AutoProcessListLock {
private:
bool has_lock;
public:
AutoProcessListLock();
~AutoProcessListLock();
void Unlock();
};
static void InitializeSystemResources();
static IWaitable *GetProcessLaunchStartEvent();
static Result ProcessLaunchStartCallback(Handle *handles, size_t num_handles, u64 timeout);
@@ -44,12 +52,19 @@ class Registration {
static void RemoveProcessFromList(u64 pid);
static void SetProcessState(u64 pid, ProcessState new_state);
static Process *GetProcess(u64 pid);
static Process *GetProcessByTitleId(u64 tid);
static Handle GetProcessEventHandle();
static void GetProcessEventType(u64 *out_pid, u64 *out_type);
static Handle GetDebugTitleEventHandle();
static Handle GetDebugApplicationEventHandle();
static void HandleProcessLaunch();
static void SignalFinishLaunchProcess();
static Result LaunchProcess(u64 title_id, FsStorageId storage_id, u64 launch_flags, u64 *out_pid);
static Result LaunchProcessByTidSid(TidSid tid_sid, u64 launch_flags, u64 *out_pid);
static bool HasApplicationProcess();
static bool HasApplicationProcess(Process **out);
static void EnsureApplicationResourcesAvailable();
};