Kernel: pass ref in Mutex
This commit is contained in:
parent
eec11a94cb
commit
7449ba85a6
9 changed files with 27 additions and 22 deletions
|
@ -1455,16 +1455,16 @@ void Module::Interface::GetMetaDataFromCia(Kernel::HLERequestContext& ctx) {
|
|||
rb.PushMappedBuffer(output_buffer);
|
||||
}
|
||||
|
||||
Module::Module() {
|
||||
Module::Module(Core::System& system) {
|
||||
ScanForAllTitles();
|
||||
system_updater_mutex = Kernel::Mutex::Create(false, "AM::SystemUpdaterMutex");
|
||||
system_updater_mutex = system.Kernel().CreateMutex(false, "AM::SystemUpdaterMutex");
|
||||
}
|
||||
|
||||
Module::~Module() = default;
|
||||
|
||||
void InstallInterfaces(Core::System& system) {
|
||||
auto& service_manager = system.ServiceManager();
|
||||
auto am = std::make_shared<Module>();
|
||||
auto am = std::make_shared<Module>(system);
|
||||
std::make_shared<AM_APP>(am)->InstallAsService(service_manager);
|
||||
std::make_shared<AM_NET>(am)->InstallAsService(service_manager);
|
||||
std::make_shared<AM_SYS>(am)->InstallAsService(service_manager);
|
||||
|
|
|
@ -149,7 +149,7 @@ std::string GetMediaTitlePath(Service::FS::MediaType media_type);
|
|||
|
||||
class Module final {
|
||||
public:
|
||||
Module();
|
||||
explicit Module(Core::System& system);
|
||||
~Module();
|
||||
|
||||
class Interface : public ServiceFramework<Interface> {
|
||||
|
|
|
@ -859,7 +859,7 @@ Module::Module(Core::System& system) : system(system) {
|
|||
MemoryPermission::ReadWrite, MemoryPermission::Read, 0,
|
||||
Kernel::MemoryRegion::SYSTEM, "APT:SharedFont");
|
||||
|
||||
lock = Kernel::Mutex::Create(false, "APT_U:Lock");
|
||||
lock = system.Kernel().CreateMutex(false, "APT_U:Lock");
|
||||
}
|
||||
|
||||
Module::~Module() {}
|
||||
|
|
|
@ -19,7 +19,7 @@ void CSND_SND::Initialize(Kernel::HLERequestContext& ctx) {
|
|||
const u32 offset3 = rp.Pop<u32>();
|
||||
|
||||
using Kernel::MemoryPermission;
|
||||
mutex = Kernel::Mutex::Create(false, "CSND:mutex");
|
||||
mutex = system.Kernel().CreateMutex(false, "CSND:mutex");
|
||||
shared_memory = Kernel::SharedMemory::Create(nullptr, size, MemoryPermission::ReadWrite,
|
||||
MemoryPermission::ReadWrite, 0,
|
||||
Kernel::MemoryRegion::BASE, "CSND:SharedMemory");
|
||||
|
@ -173,7 +173,7 @@ void CSND_SND::Reset(Kernel::HLERequestContext& ctx) {
|
|||
LOG_WARNING(Service_CSND, "(STUBBED) called");
|
||||
}
|
||||
|
||||
CSND_SND::CSND_SND() : ServiceFramework("csnd:SND", 4) {
|
||||
CSND_SND::CSND_SND(Core::System& system) : ServiceFramework("csnd:SND", 4), system(system) {
|
||||
static const FunctionInfo functions[] = {
|
||||
// clang-format off
|
||||
{0x00010140, &CSND_SND::Initialize, "Initialize"},
|
||||
|
@ -196,7 +196,7 @@ CSND_SND::CSND_SND() : ServiceFramework("csnd:SND", 4) {
|
|||
|
||||
void InstallInterfaces(Core::System& system) {
|
||||
auto& service_manager = system.ServiceManager();
|
||||
std::make_shared<CSND_SND>()->InstallAsService(service_manager);
|
||||
std::make_shared<CSND_SND>(system)->InstallAsService(service_manager);
|
||||
}
|
||||
|
||||
} // namespace Service::CSND
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace Service::CSND {
|
|||
|
||||
class CSND_SND final : public ServiceFramework<CSND_SND> {
|
||||
public:
|
||||
CSND_SND();
|
||||
explicit CSND_SND(Core::System& system);
|
||||
~CSND_SND() = default;
|
||||
|
||||
private:
|
||||
|
@ -174,6 +174,8 @@ private:
|
|||
};
|
||||
static_assert(sizeof(Type0Command) == 0x20, "Type0Command structure size is wrong");
|
||||
|
||||
Core::System& system;
|
||||
|
||||
Kernel::SharedPtr<Kernel::Mutex> mutex = nullptr;
|
||||
Kernel::SharedPtr<Kernel::SharedMemory> shared_memory = nullptr;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue