mirror of
https://github.com/starr-dusT/yuzu-mainline
synced 2024-03-05 21:12:25 -08:00
51 lines
946 B
C++
51 lines
946 B
C++
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include "common/common_funcs.h"
|
|
#include "common/common_types.h"
|
|
|
|
namespace Kernel {
|
|
class KProcess;
|
|
}
|
|
|
|
namespace Core {
|
|
class System;
|
|
}
|
|
|
|
namespace Service::AM {
|
|
|
|
class Process {
|
|
public:
|
|
explicit Process(Core::System& system);
|
|
~Process();
|
|
|
|
bool Initialize(u64 program_id);
|
|
void Finalize();
|
|
|
|
bool Run();
|
|
void Terminate();
|
|
|
|
bool IsInitialized() const {
|
|
return m_process != nullptr;
|
|
}
|
|
u64 GetProcessId() const;
|
|
u64 GetProgramId() const {
|
|
return m_program_id;
|
|
}
|
|
Kernel::KProcess* GetProcess() const {
|
|
return m_process;
|
|
}
|
|
|
|
private:
|
|
Core::System& m_system;
|
|
Kernel::KProcess* m_process{};
|
|
s32 m_main_thread_priority{};
|
|
u64 m_main_thread_stack_size{};
|
|
u64 m_program_id{};
|
|
bool m_process_started{};
|
|
};
|
|
|
|
} // namespace Service::AM
|