From d2ad84453dd0e77ab477437189a56a53892f1cf2 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Tue, 14 Apr 2015 05:00:31 +0300 Subject: [PATCH] KernelExplorer fixed --- rpcs3/Emu/CPU/CPUThread.h | 2 +- rpcs3/Emu/CPU/CPUThreadManager.cpp | 18 +---- rpcs3/Emu/IdManager.h | 16 ---- rpcs3/Emu/SysCalls/Modules/cellAdec.cpp | 16 ++-- rpcs3/Emu/SysCalls/Modules/cellDmux.cpp | 32 ++++---- rpcs3/Emu/SysCalls/Modules/cellFs.cpp | 4 +- rpcs3/Emu/SysCalls/Modules/cellGifDec.cpp | 59 +++++++------- rpcs3/Emu/SysCalls/Modules/cellJpgDec.cpp | 59 ++++++++------ rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp | 4 +- rpcs3/Emu/SysCalls/Modules/cellVdec.cpp | 18 ++--- rpcs3/Emu/SysCalls/Modules/cellVpost.cpp | 4 +- rpcs3/Emu/SysCalls/Modules/libmixer.cpp | 20 ++--- rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp | 16 ++-- rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp | 14 ++-- rpcs3/Emu/SysCalls/SyncPrimitivesManager.cpp | 75 ------------------ rpcs3/Emu/SysCalls/SyncPrimitivesManager.h | 27 ------- rpcs3/Emu/SysCalls/lv2/sys_cond.cpp | 14 ++-- rpcs3/Emu/SysCalls/lv2/sys_event.cpp | 18 ++--- rpcs3/Emu/SysCalls/lv2/sys_event_flag.cpp | 16 ++-- rpcs3/Emu/SysCalls/lv2/sys_fs.cpp | 2 +- rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp | 12 +-- rpcs3/Emu/SysCalls/lv2/sys_lwmutex.cpp | 12 +-- rpcs3/Emu/SysCalls/lv2/sys_memory.cpp | 25 ++++-- rpcs3/Emu/SysCalls/lv2/sys_mmapper.cpp | 30 +++++--- rpcs3/Emu/SysCalls/lv2/sys_mutex.cpp | 10 +-- rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp | 16 ++-- rpcs3/Emu/SysCalls/lv2/sys_process.cpp | 6 +- rpcs3/Emu/SysCalls/lv2/sys_prx.cpp | 28 ++++--- rpcs3/Emu/SysCalls/lv2/sys_rwlock.cpp | 18 ++--- rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp | 10 +-- rpcs3/Emu/SysCalls/lv2/sys_spu.cpp | 50 ++++++------ rpcs3/Emu/SysCalls/lv2/sys_timer.cpp | 12 +-- rpcs3/Emu/SysCalls/lv2/sys_vm.cpp | 10 ++- rpcs3/Emu/System.cpp | 3 - rpcs3/Emu/System.h | 1 - rpcs3/Gui/KernelExplorer.cpp | 81 +++++++++++++++----- rpcs3/emucore.vcxproj | 2 - rpcs3/emucore.vcxproj.filters | 6 -- 38 files changed, 358 insertions(+), 408 deletions(-) delete mode 100644 rpcs3/Emu/SysCalls/SyncPrimitivesManager.cpp delete mode 100644 rpcs3/Emu/SysCalls/SyncPrimitivesManager.h diff --git a/rpcs3/Emu/CPU/CPUThread.h b/rpcs3/Emu/CPU/CPUThread.h index e81d79216e..d006ace661 100644 --- a/rpcs3/Emu/CPU/CPUThread.h +++ b/rpcs3/Emu/CPU/CPUThread.h @@ -77,7 +77,7 @@ public: std::string GetName() const { return NamedThreadBase::GetThreadName(); } std::string GetFName() const { - return fmt::format("%s[%d] Thread (%s)", GetTypeString(), m_id, GetName()); + return fmt::format("%s[0x%x] Thread (%s)", GetTypeString(), m_id, GetName()); } static std::string CPUThreadTypeToString(CPUThreadType type) diff --git a/rpcs3/Emu/CPU/CPUThreadManager.cpp b/rpcs3/Emu/CPU/CPUThreadManager.cpp index 027384f878..6e6953e9d4 100644 --- a/rpcs3/Emu/CPU/CPUThreadManager.cpp +++ b/rpcs3/Emu/CPU/CPUThreadManager.cpp @@ -112,26 +112,14 @@ void CPUThreadManager::RemoveThread(u32 id) std::shared_ptr CPUThreadManager::GetThread(u32 id) { - std::shared_ptr res; - - if (!id) return nullptr; - - if (!Emu.GetIdManager().GetIDData(id, res)) return nullptr; - - return res; + return Emu.GetIdManager().GetIDData(id); } std::shared_ptr CPUThreadManager::GetThread(u32 id, CPUThreadType type) { - std::shared_ptr res; + const auto res = GetThread(id); - if (!id) return nullptr; - - if (!Emu.GetIdManager().GetIDData(id, res)) return nullptr; - - if (res->GetType() != type) return nullptr; - - return res; + return res && res->GetType() == type ? res : nullptr; } std::shared_ptr CPUThreadManager::GetRawSPUThread(u32 index) diff --git a/rpcs3/Emu/IdManager.h b/rpcs3/Emu/IdManager.h index 2d1966c198..3921327ca6 100644 --- a/rpcs3/Emu/IdManager.h +++ b/rpcs3/Emu/IdManager.h @@ -122,22 +122,6 @@ public: return m_cur_id++; } - template bool GetIDData(const u32 id, std::shared_ptr& result) - { - std::lock_guard lock(m_mutex); - - auto f = m_id_map.find(id); - - if (f == m_id_map.end() || f->second.GetInfo() != typeid(T)) - { - return false; - } - - result = f->second.GetData(); - - return true; - } - template std::shared_ptr GetIDData(const u32 id) { std::lock_guard lock(m_mutex); diff --git a/rpcs3/Emu/SysCalls/Modules/cellAdec.cpp b/rpcs3/Emu/SysCalls/Modules/cellAdec.cpp index 017dd66c4b..e4b61d8e57 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellAdec.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellAdec.cpp @@ -225,7 +225,7 @@ u32 adecOpen(AudioDecoder* adec_ptr) adec.id = adec_id; adec.adecCb = static_cast(Emu.GetCPU().AddThread(CPU_THREAD_PPU).get()); - adec.adecCb->SetName(fmt::format("AudioDecoder[%d] Callback", adec_id)); + adec.adecCb->SetName(fmt::format("AudioDecoder[0x%x] Callback", adec_id)); adec.adecCb->SetEntry(0); adec.adecCb->SetPrio(1001); adec.adecCb->SetStackSize(0x10000); @@ -233,7 +233,7 @@ u32 adecOpen(AudioDecoder* adec_ptr) adec.adecCb->InitRegs(); adec.adecCb->DoRun(); - thread_t t(fmt::format("AudioDecoder[%d] Thread", adec_id), [adec_ptr, sptr]() + thread_t t(fmt::format("AudioDecoder[0x%x] Thread", adec_id), [adec_ptr, sptr]() { AudioDecoder& adec = *adec_ptr; AdecTask& task = adec.task; @@ -556,7 +556,7 @@ s32 cellAdecOpenEx(vm::ptr type, vm::ptr res, s32 cellAdecClose(u32 handle) { - cellAdec.Warning("cellAdecClose(handle=%d)", handle); + cellAdec.Warning("cellAdecClose(handle=0x%x)", handle); const auto adec = Emu.GetIdManager().GetIDData(handle); @@ -585,7 +585,7 @@ s32 cellAdecClose(u32 handle) s32 cellAdecStartSeq(u32 handle, u32 param) { - cellAdec.Warning("cellAdecStartSeq(handle=%d, param=*0x%x)", handle, param); + cellAdec.Warning("cellAdecStartSeq(handle=0x%x, param=*0x%x)", handle, param); const auto adec = Emu.GetIdManager().GetIDData(handle); @@ -638,7 +638,7 @@ s32 cellAdecStartSeq(u32 handle, u32 param) s32 cellAdecEndSeq(u32 handle) { - cellAdec.Warning("cellAdecEndSeq(handle=%d)", handle); + cellAdec.Warning("cellAdecEndSeq(handle=0x%x)", handle); const auto adec = Emu.GetIdManager().GetIDData(handle); @@ -653,7 +653,7 @@ s32 cellAdecEndSeq(u32 handle) s32 cellAdecDecodeAu(u32 handle, vm::ptr auInfo) { - cellAdec.Log("cellAdecDecodeAu(handle=%d, auInfo=*0x%x)", handle, auInfo); + cellAdec.Log("cellAdecDecodeAu(handle=0x%x, auInfo=*0x%x)", handle, auInfo); const auto adec = Emu.GetIdManager().GetIDData(handle); @@ -676,7 +676,7 @@ s32 cellAdecDecodeAu(u32 handle, vm::ptr auInfo) s32 cellAdecGetPcm(u32 handle, vm::ptr outBuffer) { - cellAdec.Log("cellAdecGetPcm(handle=%d, outBuffer=*0x%x)", handle, outBuffer); + cellAdec.Log("cellAdecGetPcm(handle=0x%x, outBuffer=*0x%x)", handle, outBuffer); const auto adec = Emu.GetIdManager().GetIDData(handle); @@ -792,7 +792,7 @@ s32 cellAdecGetPcm(u32 handle, vm::ptr outBuffer) s32 cellAdecGetPcmItem(u32 handle, vm::ptr> pcmItem) { - cellAdec.Log("cellAdecGetPcmItem(handle=%d, pcmItem=**0x%x)", handle, pcmItem); + cellAdec.Log("cellAdecGetPcmItem(handle=0x%x, pcmItem=**0x%x)", handle, pcmItem); const auto adec = Emu.GetIdManager().GetIDData(handle); diff --git a/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp b/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp index 528a3d6384..93e326ae48 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellDmux.cpp @@ -309,7 +309,7 @@ u32 dmuxOpen(Demuxer* dmux_ptr) dmux.id = dmux_id; dmux.dmuxCb = static_cast(Emu.GetCPU().AddThread(CPU_THREAD_PPU).get()); - dmux.dmuxCb->SetName(fmt::format("Demuxer[%d] Callback", dmux_id)); + dmux.dmuxCb->SetName(fmt::format("Demuxer[0x%x] Callback", dmux_id)); dmux.dmuxCb->SetEntry(0); dmux.dmuxCb->SetPrio(1001); dmux.dmuxCb->SetStackSize(0x10000); @@ -317,7 +317,7 @@ u32 dmuxOpen(Demuxer* dmux_ptr) dmux.dmuxCb->InitRegs(); dmux.dmuxCb->DoRun(); - thread_t t(fmt::format("Demuxer[%d] Thread", dmux_id), [dmux_ptr, sptr]() + thread_t t(fmt::format("Demuxer[0x%x] Thread", dmux_id), [dmux_ptr, sptr]() { Demuxer& dmux = *dmux_ptr; @@ -853,7 +853,7 @@ s32 cellDmuxOpen2(vm::ptr type2, vm::ptr(handle); @@ -883,7 +883,7 @@ s32 cellDmuxClose(u32 handle) s32 cellDmuxSetStream(u32 handle, u32 streamAddress, u32 streamSize, bool discontinuity, u64 userData) { - cellDmux.Log("cellDmuxSetStream(handle=%d, streamAddress=0x%x, streamSize=%d, discontinuity=%d, userData=0x%llx)", handle, streamAddress, streamSize, discontinuity, userData); + cellDmux.Log("cellDmuxSetStream(handle=0x%x, streamAddress=0x%x, streamSize=%d, discontinuity=%d, userData=0x%llx)", handle, streamAddress, streamSize, discontinuity, userData); const auto dmux = Emu.GetIdManager().GetIDData(handle); @@ -911,7 +911,7 @@ s32 cellDmuxSetStream(u32 handle, u32 streamAddress, u32 streamSize, bool discon s32 cellDmuxResetStream(u32 handle) { - cellDmux.Warning("cellDmuxResetStream(handle=%d)", handle); + cellDmux.Warning("cellDmuxResetStream(handle=0x%x)", handle); const auto dmux = Emu.GetIdManager().GetIDData(handle); @@ -926,7 +926,7 @@ s32 cellDmuxResetStream(u32 handle) s32 cellDmuxResetStreamAndWaitDone(u32 handle) { - cellDmux.Warning("cellDmuxResetStreamAndWaitDone(handle=%d)", handle); + cellDmux.Warning("cellDmuxResetStreamAndWaitDone(handle=0x%x)", handle); const auto dmux = Emu.GetIdManager().GetIDData(handle); @@ -987,7 +987,7 @@ s32 cellDmuxQueryEsAttr2(vm::ptr type2, vm::ptr esFilterId, vm::ptr esResourceInfo, vm::ptr esCb, u32 esSpecificInfo, vm::ptr esHandle) { - cellDmux.Warning("cellDmuxEnableEs(handle=%d, esFilterId=*0x%x, esResourceInfo=*0x%x, esCb=*0x%x, esSpecificInfo=*0x%x, esHandle=*0x%x)", handle, esFilterId, esResourceInfo, esCb, esSpecificInfo, esHandle); + cellDmux.Warning("cellDmuxEnableEs(handle=0x%x, esFilterId=*0x%x, esResourceInfo=*0x%x, esCb=*0x%x, esSpecificInfo=*0x%x, esHandle=*0x%x)", handle, esFilterId, esResourceInfo, esCb, esSpecificInfo, esHandle); const auto dmux = Emu.GetIdManager().GetIDData(handle); @@ -1006,7 +1006,7 @@ s32 cellDmuxEnableEs(u32 handle, vm::ptr esFilterId, es->id = id; *esHandle = id; - cellDmux.Warning("*** New ES(dmux=%d, addr=0x%x, size=0x%x, filter={0x%x, 0x%x, 0x%x, 0x%x}, cb=0x%x, arg=0x%x, spec=0x%x): id = %d", + cellDmux.Warning("*** New ES(dmux=0x%x, addr=0x%x, size=0x%x, filter={0x%x, 0x%x, 0x%x, 0x%x}, cb=0x%x, arg=0x%x, spec=0x%x): id = %d", handle, es->memAddr, es->memSize, es->fidMajor, es->fidMinor, es->sup1, es->sup2, es->cbFunc, es->cbArg, es->spec, id); DemuxerTask task(dmuxEnableEs); @@ -1019,7 +1019,7 @@ s32 cellDmuxEnableEs(u32 handle, vm::ptr esFilterId, s32 cellDmuxDisableEs(u32 esHandle) { - cellDmux.Warning("cellDmuxDisableEs(esHandle=%d)", esHandle); + cellDmux.Warning("cellDmuxDisableEs(esHandle=0x%x)", esHandle); const auto es = Emu.GetIdManager().GetIDData(esHandle); @@ -1038,7 +1038,7 @@ s32 cellDmuxDisableEs(u32 esHandle) s32 cellDmuxResetEs(u32 esHandle) { - cellDmux.Log("cellDmuxResetEs(esHandle=%d)", esHandle); + cellDmux.Log("cellDmuxResetEs(esHandle=0x%x)", esHandle); const auto es = Emu.GetIdManager().GetIDData(esHandle); @@ -1057,7 +1057,7 @@ s32 cellDmuxResetEs(u32 esHandle) s32 cellDmuxGetAu(u32 esHandle, vm::ptr auInfo, vm::ptr auSpecificInfo) { - cellDmux.Log("cellDmuxGetAu(esHandle=%d, auInfo=**0x%x, auSpecificInfo=**0x%x)", esHandle, auInfo, auSpecificInfo); + cellDmux.Log("cellDmuxGetAu(esHandle=0x%x, auInfo=**0x%x, auSpecificInfo=**0x%x)", esHandle, auInfo, auSpecificInfo); const auto es = Emu.GetIdManager().GetIDData(esHandle); @@ -1080,7 +1080,7 @@ s32 cellDmuxGetAu(u32 esHandle, vm::ptr auInfo, vm::ptr auSpecificInfo s32 cellDmuxPeekAu(u32 esHandle, vm::ptr auInfo, vm::ptr auSpecificInfo) { - cellDmux.Log("cellDmuxPeekAu(esHandle=%d, auInfo=**0x%x, auSpecificInfo=**0x%x)", esHandle, auInfo, auSpecificInfo); + cellDmux.Log("cellDmuxPeekAu(esHandle=0x%x, auInfo=**0x%x, auSpecificInfo=**0x%x)", esHandle, auInfo, auSpecificInfo); const auto es = Emu.GetIdManager().GetIDData(esHandle); @@ -1103,7 +1103,7 @@ s32 cellDmuxPeekAu(u32 esHandle, vm::ptr auInfo, vm::ptr auSpecificInf s32 cellDmuxGetAuEx(u32 esHandle, vm::ptr auInfoEx, vm::ptr auSpecificInfo) { - cellDmux.Log("cellDmuxGetAuEx(esHandle=%d, auInfoEx=**0x%x, auSpecificInfo=**0x%x)", esHandle, auInfoEx, auSpecificInfo); + cellDmux.Log("cellDmuxGetAuEx(esHandle=0x%x, auInfoEx=**0x%x, auSpecificInfo=**0x%x)", esHandle, auInfoEx, auSpecificInfo); const auto es = Emu.GetIdManager().GetIDData(esHandle); @@ -1126,7 +1126,7 @@ s32 cellDmuxGetAuEx(u32 esHandle, vm::ptr auInfoEx, vm::ptr auSpecific s32 cellDmuxPeekAuEx(u32 esHandle, vm::ptr auInfoEx, vm::ptr auSpecificInfo) { - cellDmux.Log("cellDmuxPeekAuEx(esHandle=%d, auInfoEx=**0x%x, auSpecificInfo=**0x%x)", esHandle, auInfoEx, auSpecificInfo); + cellDmux.Log("cellDmuxPeekAuEx(esHandle=0x%x, auInfoEx=**0x%x, auSpecificInfo=**0x%x)", esHandle, auInfoEx, auSpecificInfo); const auto es = Emu.GetIdManager().GetIDData(esHandle); @@ -1149,7 +1149,7 @@ s32 cellDmuxPeekAuEx(u32 esHandle, vm::ptr auInfoEx, vm::ptr auSpecifi s32 cellDmuxReleaseAu(u32 esHandle) { - cellDmux.Log("cellDmuxReleaseAu(esHandle=%d)", esHandle); + cellDmux.Log("cellDmuxReleaseAu(esHandle=0x%x)", esHandle); const auto es = Emu.GetIdManager().GetIDData(esHandle); @@ -1167,7 +1167,7 @@ s32 cellDmuxReleaseAu(u32 esHandle) s32 cellDmuxFlushEs(u32 esHandle) { - cellDmux.Warning("cellDmuxFlushEs(esHandle=%d)", esHandle); + cellDmux.Warning("cellDmuxFlushEs(esHandle=0x%x)", esHandle); const auto es = Emu.GetIdManager().GetIDData(esHandle); diff --git a/rpcs3/Emu/SysCalls/Modules/cellFs.cpp b/rpcs3/Emu/SysCalls/Modules/cellFs.cpp index 3245e167a5..6985f1ff70 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellFs.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellFs.cpp @@ -970,14 +970,14 @@ s32 cellFsAioCancel(s32 id) s32 cellFsSetDefaultContainer(u32 id, u32 total_limit) { - cellFs.Todo("cellFsSetDefaultContainer(id=%d, total_limit=%d)", id, total_limit); + cellFs.Todo("cellFsSetDefaultContainer(id=0x%x, total_limit=%d)", id, total_limit); return CELL_OK; } s32 cellFsSetIoBufferFromDefaultContainer(u32 fd, u32 buffer_size, u32 page_type) { - cellFs.Todo("cellFsSetIoBufferFromDefaultContainer(fd=%d, buffer_size=%d, page_type=%d)", fd, buffer_size, page_type); + cellFs.Todo("cellFsSetIoBufferFromDefaultContainer(fd=0x%x, buffer_size=%d, page_type=%d)", fd, buffer_size, page_type); const auto file = Emu.GetIdManager().GetIDData(fd); diff --git a/rpcs3/Emu/SysCalls/Modules/cellGifDec.cpp b/rpcs3/Emu/SysCalls/Modules/cellGifDec.cpp index daa5d80bde..e6c3da6484 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellGifDec.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellGifDec.cpp @@ -18,22 +18,21 @@ extern "C" extern Module cellGifDec; -int cellGifDecCreate(u32 mainHandle, u32 threadInParam, u32 threadOutParam) +s32 cellGifDecCreate(u32 mainHandle, u32 threadInParam, u32 threadOutParam) { UNIMPLEMENTED_FUNC(cellGifDec); return CELL_OK; } -int cellGifDecExtCreate(u32 mainHandle, u32 threadInParam, u32 threadOutParam, u32 extThreadInParam, u32 extThreadOutParam) +s32 cellGifDecExtCreate(u32 mainHandle, u32 threadInParam, u32 threadOutParam, u32 extThreadInParam, u32 extThreadOutParam) { UNIMPLEMENTED_FUNC(cellGifDec); return CELL_OK; } -int cellGifDecOpen(u32 mainHandle, vm::ptr subHandle, vm::ptr src, vm::ptr openInfo) +s32 cellGifDecOpen(u32 mainHandle, vm::ptr subHandle, vm::ptr src, vm::ptr openInfo) { - cellGifDec.Warning("cellGifDecOpen(mainHandle=0x%x, subHandle_addr=0x%x, src_addr=0x%x, openInfo_addr=0x%x)", - mainHandle, subHandle.addr(), src.addr(), openInfo.addr()); + cellGifDec.Warning("cellGifDecOpen(mainHandle=0x%x, subHandle=*0x%x, src=*0x%x, openInfo=*0x%x)", mainHandle, subHandle, src, openInfo); std::shared_ptr current_subHandle(new CellGifDecSubHandle); current_subHandle->fd = 0; @@ -63,14 +62,16 @@ int cellGifDecOpen(u32 mainHandle, vm::ptr subHandle, vm::ptr info) +s32 cellGifDecReadHeader(u32 mainHandle, u32 subHandle, vm::ptr info) { - cellGifDec.Warning("cellGifDecReadHeader(mainHandle=0x%x, subHandle=0x%x, info_addr=0x%x)", - mainHandle, subHandle, info.addr()); + cellGifDec.Warning("cellGifDecReadHeader(mainHandle=0x%x, subHandle=0x%x, info=*0x%x)", mainHandle, subHandle, info); - std::shared_ptr subHandle_data; - if(!Emu.GetIdManager().GetIDData(subHandle, subHandle_data)) + const auto subHandle_data = Emu.GetIdManager().GetIDData(subHandle); + + if (!subHandle_data) + { return CELL_GIFDEC_ERROR_FATAL; + } const u32& fd = subHandle_data->fd; const u64& fileSize = subHandle_data->fileSize; @@ -115,14 +116,16 @@ int cellGifDecReadHeader(u32 mainHandle, u32 subHandle, vm::ptr return CELL_OK; } -int cellGifDecSetParameter(u32 mainHandle, u32 subHandle, vm::ptr inParam, vm::ptr outParam) +s32 cellGifDecSetParameter(u32 mainHandle, u32 subHandle, vm::ptr inParam, vm::ptr outParam) { - cellGifDec.Warning("cellGifDecSetParameter(mainHandle=0x%x, subHandle=0x%x, inParam_addr=0x%x, outParam_addr=0x%x)", - mainHandle, subHandle, inParam.addr(), outParam.addr()); + cellGifDec.Warning("cellGifDecSetParameter(mainHandle=0x%x, subHandle=0x%x, inParam=*0x%x, outParam=*0x%x)", mainHandle, subHandle, inParam, outParam); - std::shared_ptr subHandle_data; - if(!Emu.GetIdManager().GetIDData(subHandle, subHandle_data)) + const auto subHandle_data = Emu.GetIdManager().GetIDData(subHandle); + + if (!subHandle_data) + { return CELL_GIFDEC_ERROR_FATAL; + } CellGifDecInfo& current_info = subHandle_data->info; CellGifDecOutParam& current_outParam = subHandle_data->outParam; @@ -145,16 +148,18 @@ int cellGifDecSetParameter(u32 mainHandle, u32 subHandle, vm::ptr data, vm::ptr dataCtrlParam, vm::ptr dataOutInfo) +s32 cellGifDecDecodeData(u32 mainHandle, u32 subHandle, vm::ptr data, vm::ptr dataCtrlParam, vm::ptr dataOutInfo) { - cellGifDec.Warning("cellGifDecDecodeData(mainHandle=0x%x, subHandle=0x%x, data_addr=0x%x, dataCtrlParam_addr=0x%x, dataOutInfo_addr=0x%x)", - mainHandle, subHandle, data.addr(), dataCtrlParam.addr(), dataOutInfo.addr()); + cellGifDec.Warning("cellGifDecDecodeData(mainHandle=0x%x, subHandle=0x%x, data=*0x%x, dataCtrlParam=*0x%x, dataOutInfo=*0x%x)", mainHandle, subHandle, data, dataCtrlParam, dataOutInfo); dataOutInfo->status = CELL_GIFDEC_DEC_STATUS_STOP; - std::shared_ptr subHandle_data; - if(!Emu.GetIdManager().GetIDData(subHandle, subHandle_data)) + const auto subHandle_data = Emu.GetIdManager().GetIDData(subHandle); + + if (!subHandle_data) + { return CELL_GIFDEC_ERROR_FATAL; + } const u32& fd = subHandle_data->fd; const u64& fileSize = subHandle_data->fileSize; @@ -264,14 +269,16 @@ int cellGifDecDecodeData(u32 mainHandle, u32 subHandle, vm::ptr data, vm::pt return CELL_OK; } -int cellGifDecClose(u32 mainHandle, u32 subHandle) +s32 cellGifDecClose(u32 mainHandle, u32 subHandle) { - cellGifDec.Warning("cellGifDecClose(mainHandle=0x%x, subHandle=0x%x)", - mainHandle, subHandle); + cellGifDec.Warning("cellGifDecClose(mainHandle=0x%x, subHandle=0x%x)", mainHandle, subHandle); - std::shared_ptr subHandle_data; - if(!Emu.GetIdManager().GetIDData(subHandle, subHandle_data)) + const auto subHandle_data = Emu.GetIdManager().GetIDData(subHandle); + + if (!subHandle_data) + { return CELL_GIFDEC_ERROR_FATAL; + } Emu.GetIdManager().RemoveID(subHandle_data->fd); Emu.GetIdManager().RemoveID(subHandle); @@ -279,7 +286,7 @@ int cellGifDecClose(u32 mainHandle, u32 subHandle) return CELL_OK; } -int cellGifDecDestroy(u32 mainHandle) +s32 cellGifDecDestroy(u32 mainHandle) { UNIMPLEMENTED_FUNC(cellGifDec); return CELL_OK; diff --git a/rpcs3/Emu/SysCalls/Modules/cellJpgDec.cpp b/rpcs3/Emu/SysCalls/Modules/cellJpgDec.cpp index f08f977357..eb9463603c 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellJpgDec.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellJpgDec.cpp @@ -17,28 +17,27 @@ extern "C" extern Module cellJpgDec; -int cellJpgDecCreate(u32 mainHandle, u32 threadInParam, u32 threadOutParam) +s32 cellJpgDecCreate(u32 mainHandle, u32 threadInParam, u32 threadOutParam) { UNIMPLEMENTED_FUNC(cellJpgDec); return CELL_OK; } -int cellJpgDecExtCreate(u32 mainHandle, u32 threadInParam, u32 threadOutParam, u32 extThreadInParam, u32 extThreadOutParam) +s32 cellJpgDecExtCreate(u32 mainHandle, u32 threadInParam, u32 threadOutParam, u32 extThreadInParam, u32 extThreadOutParam) { UNIMPLEMENTED_FUNC(cellJpgDec); return CELL_OK; } -int cellJpgDecDestroy(u32 mainHandle) +s32 cellJpgDecDestroy(u32 mainHandle) { UNIMPLEMENTED_FUNC(cellJpgDec); return CELL_OK; } -int cellJpgDecOpen(u32 mainHandle, vm::ptr subHandle, vm::ptr src, vm::ptr openInfo) +s32 cellJpgDecOpen(u32 mainHandle, vm::ptr subHandle, vm::ptr src, vm::ptr openInfo) { - cellJpgDec.Warning("cellJpgDecOpen(mainHandle=0x%x, subHandle_addr=0x%x, src_addr=0x%x, openInfo_addr=0x%x)", - mainHandle, subHandle.addr(), src.addr(), openInfo.addr()); + cellJpgDec.Warning("cellJpgDecOpen(mainHandle=0x%x, subHandle=*0x%x, src=*0x%x, openInfo=*0x%x)", mainHandle, subHandle, src, openInfo); std::shared_ptr current_subHandle(new CellJpgDecSubHandle); @@ -69,14 +68,16 @@ int cellJpgDecOpen(u32 mainHandle, vm::ptr subHandle, vm::ptr subHandle_data; - if(!Emu.GetIdManager().GetIDData(subHandle, subHandle_data)) + const auto subHandle_data = Emu.GetIdManager().GetIDData(subHandle); + + if (!subHandle_data) + { return CELL_JPGDEC_ERROR_FATAL; + } Emu.GetIdManager().RemoveID(subHandle_data->fd); Emu.GetIdManager().RemoveID(subHandle); @@ -84,13 +85,16 @@ int cellJpgDecClose(u32 mainHandle, u32 subHandle) return CELL_OK; } -int cellJpgDecReadHeader(u32 mainHandle, u32 subHandle, vm::ptr info) +s32 cellJpgDecReadHeader(u32 mainHandle, u32 subHandle, vm::ptr info) { - cellJpgDec.Log("cellJpgDecReadHeader(mainHandle=0x%x, subHandle=0x%x, info_addr=0x%x)", mainHandle, subHandle, info.addr()); + cellJpgDec.Log("cellJpgDecReadHeader(mainHandle=0x%x, subHandle=0x%x, info=*0x%x)", mainHandle, subHandle, info); - std::shared_ptr subHandle_data; - if(!Emu.GetIdManager().GetIDData(subHandle, subHandle_data)) + const auto subHandle_data = Emu.GetIdManager().GetIDData(subHandle); + + if (!subHandle_data) + { return CELL_JPGDEC_ERROR_FATAL; + } const u32& fd = subHandle_data->fd; const u64& fileSize = subHandle_data->fileSize; @@ -153,15 +157,18 @@ int cellJpgDecReadHeader(u32 mainHandle, u32 subHandle, vm::ptr return CELL_OK; } -int cellJpgDecDecodeData(u32 mainHandle, u32 subHandle, vm::ptr data, vm::ptr dataCtrlParam, vm::ptr dataOutInfo) +s32 cellJpgDecDecodeData(u32 mainHandle, u32 subHandle, vm::ptr data, vm::ptr dataCtrlParam, vm::ptr dataOutInfo) { - cellJpgDec.Log("cellJpgDecDecodeData(mainHandle=0x%x, subHandle=0x%x, data_addr=0x%x, dataCtrlParam_addr=0x%x, dataOutInfo_addr=0x%x)", - mainHandle, subHandle, data.addr(), dataCtrlParam.addr(), dataOutInfo.addr()); + cellJpgDec.Log("cellJpgDecDecodeData(mainHandle=0x%x, subHandle=0x%x, data=*0x%x, dataCtrlParam=*0x%x, dataOutInfo=*0x%x)", mainHandle, subHandle, data, dataCtrlParam, dataOutInfo); dataOutInfo->status = CELL_JPGDEC_DEC_STATUS_STOP; - std::shared_ptr subHandle_data; - if(!Emu.GetIdManager().GetIDData(subHandle, subHandle_data)) + + const auto subHandle_data = Emu.GetIdManager().GetIDData(subHandle); + + if (!subHandle_data) + { return CELL_JPGDEC_ERROR_FATAL; + } const u32& fd = subHandle_data->fd; const u64& fileSize = subHandle_data->fileSize; @@ -286,14 +293,16 @@ int cellJpgDecDecodeData(u32 mainHandle, u32 subHandle, vm::ptr data, vm::pt return CELL_OK; } -int cellJpgDecSetParameter(u32 mainHandle, u32 subHandle, vm::ptr inParam, vm::ptr outParam) +s32 cellJpgDecSetParameter(u32 mainHandle, u32 subHandle, vm::ptr inParam, vm::ptr outParam) { - cellJpgDec.Log("cellJpgDecSetParameter(mainHandle=0x%x, subHandle=0x%x, inParam_addr=0x%x, outParam_addr=0x%x)", - mainHandle, subHandle, inParam.addr(), outParam.addr()); + cellJpgDec.Log("cellJpgDecSetParameter(mainHandle=0x%x, subHandle=0x%x, inParam=*0x%x, outParam=*0x%x)", mainHandle, subHandle, inParam, outParam); - std::shared_ptr subHandle_data; - if(!Emu.GetIdManager().GetIDData(subHandle, subHandle_data)) + const auto subHandle_data = Emu.GetIdManager().GetIDData(subHandle); + + if (!subHandle_data) + { return CELL_JPGDEC_ERROR_FATAL; + } CellJpgDecInfo& current_info = subHandle_data->info; CellJpgDecOutParam& current_outParam = subHandle_data->outParam; diff --git a/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp b/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp index 38f72777aa..ffaf28c635 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSpurs.cpp @@ -475,7 +475,7 @@ s32 _cellSpursAttributeInitialize(vm::ptr attr, u32 revision s32 cellSpursAttributeSetMemoryContainerForSpuThread(vm::ptr attr, u32 container) { - cellSpurs.Warning("cellSpursAttributeSetMemoryContainerForSpuThread(attr_addr=0x%x, container=%d)", attr.addr(), container); + cellSpurs.Warning("cellSpursAttributeSetMemoryContainerForSpuThread(attr_addr=0x%x, container=0x%x)", attr.addr(), container); if (!attr) { @@ -707,7 +707,7 @@ s32 spursAttachLv2EventQueue(vm::ptr spurs, u32 queue, vm::ptr po s32 cellSpursAttachLv2EventQueue(vm::ptr spurs, u32 queue, vm::ptr port, s32 isDynamic) { - cellSpurs.Warning("cellSpursAttachLv2EventQueue(spurs_addr=0x%x, queue=%d, port_addr=0x%x, isDynamic=%d)", + cellSpurs.Warning("cellSpursAttachLv2EventQueue(spurs_addr=0x%x, queue=0x%x, port_addr=0x%x, isDynamic=%d)", spurs.addr(), queue, port.addr(), isDynamic); return spursAttachLv2EventQueue(spurs, queue, port, isDynamic, false); diff --git a/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp b/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp index f95429c8b7..15c9b5f8ca 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellVdec.cpp @@ -215,7 +215,7 @@ u32 vdecOpen(VideoDecoder* vdec_ptr) vdec.id = vdec_id; vdec.vdecCb = static_cast(Emu.GetCPU().AddThread(CPU_THREAD_PPU).get()); - vdec.vdecCb->SetName(fmt::format("VideoDecoder[%d] Callback", vdec_id)); + vdec.vdecCb->SetName(fmt::format("VideoDecoder[0x%x] Callback", vdec_id)); vdec.vdecCb->SetEntry(0); vdec.vdecCb->SetPrio(1001); vdec.vdecCb->SetStackSize(0x10000); @@ -223,7 +223,7 @@ u32 vdecOpen(VideoDecoder* vdec_ptr) vdec.vdecCb->InitRegs(); vdec.vdecCb->DoRun(); - thread_t t(fmt::format("VideoDecoder[%d] Thread", vdec_id), [vdec_ptr, sptr]() + thread_t t(fmt::format("VideoDecoder[0x%x] Thread", vdec_id), [vdec_ptr, sptr]() { VideoDecoder& vdec = *vdec_ptr; VdecTask& task = vdec.task; @@ -585,7 +585,7 @@ s32 cellVdecOpenEx(vm::ptr type, vm::ptr(handle); @@ -614,7 +614,7 @@ s32 cellVdecClose(u32 handle) s32 cellVdecStartSeq(u32 handle) { - cellVdec.Log("cellVdecStartSeq(handle=%d)", handle); + cellVdec.Log("cellVdecStartSeq(handle=0x%x)", handle); const auto vdec = Emu.GetIdManager().GetIDData(handle); @@ -629,7 +629,7 @@ s32 cellVdecStartSeq(u32 handle) s32 cellVdecEndSeq(u32 handle) { - cellVdec.Warning("cellVdecEndSeq(handle=%d)", handle); + cellVdec.Warning("cellVdecEndSeq(handle=0x%x)", handle); const auto vdec = Emu.GetIdManager().GetIDData(handle); @@ -644,7 +644,7 @@ s32 cellVdecEndSeq(u32 handle) s32 cellVdecDecodeAu(u32 handle, CellVdecDecodeMode mode, vm::ptr auInfo) { - cellVdec.Log("cellVdecDecodeAu(handle=%d, mode=%d, auInfo=*0x%x)", handle, mode, auInfo); + cellVdec.Log("cellVdecDecodeAu(handle=0x%x, mode=%d, auInfo=*0x%x)", handle, mode, auInfo); const auto vdec = Emu.GetIdManager().GetIDData(handle); @@ -674,7 +674,7 @@ s32 cellVdecDecodeAu(u32 handle, CellVdecDecodeMode mode, vm::ptr format, vm::ptr outBuff) { - cellVdec.Log("cellVdecGetPicture(handle=%d, format=*0x%x, outBuff=*0x%x)", handle, format, outBuff); + cellVdec.Log("cellVdecGetPicture(handle=0x%x, format=*0x%x, outBuff=*0x%x)", handle, format, outBuff); const auto vdec = Emu.GetIdManager().GetIDData(handle); @@ -730,7 +730,7 @@ s32 cellVdecGetPicture(u32 handle, vm::ptr format, vm:: s32 cellVdecGetPicItem(u32 handle, vm::ptr> picItem) { - cellVdec.Log("cellVdecGetPicItem(handle=%d, picItem=**0x%x)", handle, picItem); + cellVdec.Log("cellVdecGetPicItem(handle=0x%x, picItem=**0x%x)", handle, picItem); const auto vdec = Emu.GetIdManager().GetIDData(handle); @@ -875,7 +875,7 @@ s32 cellVdecGetPicItem(u32 handle, vm::ptr> picItem) s32 cellVdecSetFrameRate(u32 handle, CellVdecFrameRate frc) { - cellVdec.Log("cellVdecSetFrameRate(handle=%d, frc=0x%x)", handle, frc); + cellVdec.Log("cellVdecSetFrameRate(handle=0x%x, frc=0x%x)", handle, frc); const auto vdec = Emu.GetIdManager().GetIDData(handle); diff --git a/rpcs3/Emu/SysCalls/Modules/cellVpost.cpp b/rpcs3/Emu/SysCalls/Modules/cellVpost.cpp index 88e0bdd990..9691ff1d93 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellVpost.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellVpost.cpp @@ -57,7 +57,7 @@ s32 cellVpostOpenEx(vm::ptr cfgParam, vm::ptr(handle); @@ -72,7 +72,7 @@ s32 cellVpostClose(u32 handle) s32 cellVpostExec(u32 handle, vm::ptr inPicBuff, vm::ptr ctrlParam, vm::ptr outPicBuff, vm::ptr picInfo) { - cellVpost.Log("cellVpostExec(handle=%d, inPicBuff=*0x%x, ctrlParam=*0x%x, outPicBuff=*0x%x, picInfo=*0x%x)", handle, inPicBuff, ctrlParam, outPicBuff, picInfo); + cellVpost.Log("cellVpostExec(handle=0x%x, inPicBuff=*0x%x, ctrlParam=*0x%x, outPicBuff=*0x%x, picInfo=*0x%x)", handle, inPicBuff, ctrlParam, outPicBuff, picInfo); const auto vpost = Emu.GetIdManager().GetIDData(handle); diff --git a/rpcs3/Emu/SysCalls/Modules/libmixer.cpp b/rpcs3/Emu/SysCalls/Modules/libmixer.cpp index 5e289cfb12..ca2bd68e5d 100644 --- a/rpcs3/Emu/SysCalls/Modules/libmixer.cpp +++ b/rpcs3/Emu/SysCalls/Modules/libmixer.cpp @@ -23,7 +23,7 @@ std::vector ssp; int cellAANAddData(u32 aan_handle, u32 aan_port, u32 offset, vm::ptr addr, u32 samples) { - libmixer.Log("cellAANAddData(handle=%d, port=%d, offset=0x%x, addr_addr=0x%x, samples=%d)", aan_handle, aan_port, offset, addr.addr(), samples); + libmixer.Log("cellAANAddData(handle=0x%x, port=0x%x, offset=0x%x, addr_addr=0x%x, samples=%d)", aan_handle, aan_port, offset, addr.addr(), samples); u32 type = aan_port >> 16; u32 port = aan_port & 0xffff; @@ -44,7 +44,7 @@ int cellAANAddData(u32 aan_handle, u32 aan_port, u32 offset, vm::ptr addr if (aan_handle != 0x11111111 || samples != 256 || !type || offset != 0) { - libmixer.Error("cellAANAddData(handle=%d, port=%d, offset=0x%x, addr_addr=0x%x, samples=%d): invalid parameters", aan_handle, aan_port, offset, addr.addr(), samples); + libmixer.Error("cellAANAddData(handle=0x%x, port=0x%x, offset=0x%x, addr_addr=0x%x, samples=%d): invalid parameters", aan_handle, aan_port, offset, addr.addr(), samples); return CELL_LIBMIXER_ERROR_INVALID_PARAMATER; } @@ -104,7 +104,7 @@ int cellAANAddData(u32 aan_handle, u32 aan_port, u32 offset, vm::ptr addr int cellAANConnect(u32 receive, u32 receivePortNo, u32 source, u32 sourcePortNo) { - libmixer.Warning("cellAANConnect(receive=%d, receivePortNo=%d, source=%d, sourcePortNo=%d)", + libmixer.Warning("cellAANConnect(receive=0x%x, receivePortNo=0x%x, source=0x%x, sourcePortNo=0x%x)", receive, receivePortNo, source, sourcePortNo); std::lock_guard lock(mixer_mutex); @@ -122,7 +122,7 @@ int cellAANConnect(u32 receive, u32 receivePortNo, u32 source, u32 sourcePortNo) int cellAANDisconnect(u32 receive, u32 receivePortNo, u32 source, u32 sourcePortNo) { - libmixer.Warning("cellAANDisconnect(receive=%d, receivePortNo=%d, source=%d, sourcePortNo=%d)", + libmixer.Warning("cellAANDisconnect(receive=0x%x, receivePortNo=0x%x, source=0x%x, sourcePortNo=0x%x)", receive, receivePortNo, source, sourcePortNo); std::lock_guard lock(mixer_mutex); @@ -165,7 +165,7 @@ int cellSSPlayerCreate(vm::ptr handle, vm::ptr config) int cellSSPlayerRemove(u32 handle) { - libmixer.Warning("cellSSPlayerRemove(handle=%d)", handle); + libmixer.Warning("cellSSPlayerRemove(handle=0x%x)", handle); std::lock_guard lock(mixer_mutex); @@ -184,7 +184,7 @@ int cellSSPlayerRemove(u32 handle) int cellSSPlayerSetWave(u32 handle, vm::ptr waveInfo, vm::ptr commonInfo) { - libmixer.Warning("cellSSPlayerSetWave(handle=%d, waveInfo_addr=0x%x, commonInfo_addr=0x%x)", + libmixer.Warning("cellSSPlayerSetWave(handle=0x%x, waveInfo_addr=0x%x, commonInfo_addr=0x%x)", handle, waveInfo.addr(), commonInfo.addr()); std::lock_guard lock(mixer_mutex); @@ -208,7 +208,7 @@ int cellSSPlayerSetWave(u32 handle, vm::ptr waveInfo, vm: int cellSSPlayerPlay(u32 handle, vm::ptr info) { - libmixer.Warning("cellSSPlayerPlay(handle=%d, info_addr=0x%x)", handle, info.addr()); + libmixer.Warning("cellSSPlayerPlay(handle=0x%x, info_addr=0x%x)", handle, info.addr()); std::lock_guard lock(mixer_mutex); @@ -232,7 +232,7 @@ int cellSSPlayerPlay(u32 handle, vm::ptr info) int cellSSPlayerStop(u32 handle, u32 mode) { - libmixer.Warning("cellSSPlayerStop(handle=%d, mode=0x%x)", handle, mode); + libmixer.Warning("cellSSPlayerStop(handle=0x%x, mode=0x%x)", handle, mode); std::lock_guard lock(mixer_mutex); @@ -251,7 +251,7 @@ int cellSSPlayerStop(u32 handle, u32 mode) int cellSSPlayerSetParam(u32 handle, vm::ptr info) { - libmixer.Warning("cellSSPlayerSetParam(handle=%d, info_addr=0x%x)", handle, info.addr()); + libmixer.Warning("cellSSPlayerSetParam(handle=0x%x, info_addr=0x%x)", handle, info.addr()); std::lock_guard lock(mixer_mutex); @@ -274,7 +274,7 @@ int cellSSPlayerSetParam(u32 handle, vm::ptr info) int cellSSPlayerGetState(u32 handle) { - libmixer.Warning("cellSSPlayerGetState(handle=%d)", handle); + libmixer.Warning("cellSSPlayerGetState(handle=0x%x)", handle); std::lock_guard lock(mixer_mutex); diff --git a/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp b/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp index fb657fe3c4..5bc935199b 100644 --- a/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sceNpTrophy.cpp @@ -79,7 +79,7 @@ static sceNpTrophyInternalContext& getContext(u32 context) { // Functions int sceNpTrophyInit(u32 pool_addr, u32 poolSize, u32 containerId, u64 options) { - sceNpTrophy.Log("sceNpTrophyInit(pool_addr=0x%x, poolSize=%d, containerId=%d, options=0x%llx)", pool_addr, poolSize, containerId, options); + sceNpTrophy.Log("sceNpTrophyInit(pool_addr=0x%x, poolSize=%d, containerId=0x%x, options=0x%llx)", pool_addr, poolSize, containerId, options); if (sceNpTrophyInstance.m_bInitialized) return SCE_NP_TROPHY_ERROR_ALREADY_INITIALIZED; @@ -145,7 +145,7 @@ int sceNpTrophyCreateHandle(vm::ptr handle) int sceNpTrophyRegisterContext(u32 context, u32 handle, vm::ptr statusCb, u32 arg_addr, u64 options) { - sceNpTrophy.Warning("sceNpTrophyRegisterContext(context=%d, handle=%d, statusCb_addr=0x%x, arg_addr=0x%x, options=0x%llx)", + sceNpTrophy.Warning("sceNpTrophyRegisterContext(context=0x%x, handle=0x%x, statusCb_addr=0x%x, arg_addr=0x%x, options=0x%llx)", context, handle, statusCb.addr(), arg_addr, options); if (!(sceNpTrophyInstance.m_bInitialized)) @@ -224,7 +224,7 @@ int sceNpTrophySetSoundLevel() int sceNpTrophyGetRequiredDiskSpace(u32 context, u32 handle, vm::ptr reqspace, u64 options) { - sceNpTrophy.Warning("sceNpTrophyGetRequiredDiskSpace(context=%d, handle=%d, reqspace_addr=0x%x, options=0x%llx)", + sceNpTrophy.Warning("sceNpTrophyGetRequiredDiskSpace(context=0x%x, handle=0x%x, reqspace_addr=0x%x, options=0x%llx)", context, handle, reqspace.addr(), options); if (!sceNpTrophyInstance.m_bInitialized) @@ -251,7 +251,7 @@ int sceNpTrophyDestroyContext() int sceNpTrophyAbortHandle(u32 handle) { - sceNpTrophy.Todo("sceNpTrophyAbortHandle(handle=%d)", handle); + sceNpTrophy.Todo("sceNpTrophyAbortHandle(handle=0x%x)", handle); // TODO: ? @@ -263,7 +263,7 @@ int sceNpTrophyAbortHandle(u32 handle) int sceNpTrophyGetGameInfo(u32 context, u32 handle, vm::ptr details, vm::ptr data) { - sceNpTrophy.Warning("sceNpTrophyGetGameInfo(context=%d, handle=%d, details_addr=0x%x, data_addr=0x%x)", + sceNpTrophy.Warning("sceNpTrophyGetGameInfo(context=0x%x, handle=0x%x, details_addr=0x%x, data_addr=0x%x)", context, handle, details.addr(), data.addr()); if (!sceNpTrophyInstance.m_bInitialized) @@ -321,7 +321,7 @@ int sceNpTrophyDestroyHandle() int sceNpTrophyUnlockTrophy(u32 context, u32 handle, s32 trophyId, vm::ptr platinumId) { - sceNpTrophy.Warning("sceNpTrophyUnlockTrophy(context=%d, handle=%d, trophyId=%d, platinumId_addr=0x%x)", + sceNpTrophy.Warning("sceNpTrophyUnlockTrophy(context=0x%x, handle=0x%x, trophyId=%d, platinumId_addr=0x%x)", context, handle, trophyId, platinumId.addr()); if (!sceNpTrophyInstance.m_bInitialized) @@ -358,7 +358,7 @@ int sceNpTrophyTerm() int sceNpTrophyGetTrophyUnlockState(u32 context, u32 handle, vm::ptr flags, vm::ptr count) { - sceNpTrophy.Warning("sceNpTrophyGetTrophyUnlockState(context=%d, handle=%d, flags_addr=0x%x, count_addr=0x%x)", + sceNpTrophy.Warning("sceNpTrophyGetTrophyUnlockState(context=0x%x, handle=0x%x, flags_addr=0x%x, count_addr=0x%x)", context, handle, flags.addr(), count.addr()); if (!sceNpTrophyInstance.m_bInitialized) @@ -395,7 +395,7 @@ int sceNpTrophyGetTrophyIcon() int sceNpTrophyGetTrophyInfo(u32 context, u32 handle, s32 trophyId, vm::ptr details, vm::ptr data) { - sceNpTrophy.Warning("sceNpTrophyGetTrophyInfo(context=%d, handle=%d, trophyId=%d, details_addr=0x%x, data_addr=0x%x)", + sceNpTrophy.Warning("sceNpTrophyGetTrophyInfo(context=0x%x, handle=0x%x, trophyId=%d, details_addr=0x%x, data_addr=0x%x)", context, handle, trophyId, details.addr(), data.addr()); if (!sceNpTrophyInstance.m_bInitialized) diff --git a/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp b/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp index 8923084b84..9f918a4364 100644 --- a/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sysPrxForUser.cpp @@ -117,7 +117,7 @@ s32 sys_lwmutex_create(vm::ptr lwmutex, vm::ptrlock_var = { { lwmutex::free, lwmutex::zero } }; lwmutex->attribute = attr->recursive | attr->protocol; lwmutex->recursive_count = 0; - lwmutex->sleep_queue = Emu.GetIdManager().GetNewID(lw); + lwmutex->sleep_queue = Emu.GetIdManager().GetNewID(lw, TYPE_LWMUTEX); return CELL_OK; } @@ -501,7 +501,7 @@ s32 sys_lwcond_signal_all(PPUThread& CPU, vm::ptr lwcond) s32 sys_lwcond_signal_to(PPUThread& CPU, vm::ptr lwcond, u32 ppu_thread_id) { - sysPrxForUser.Log("sys_lwcond_signal_to(lwcond=*0x%x, ppu_thread_id=%d)", lwcond, ppu_thread_id); + sysPrxForUser.Log("sys_lwcond_signal_to(lwcond=*0x%x, ppu_thread_id=0x%x)", lwcond, ppu_thread_id); const vm::ptr lwmutex = lwcond->lwmutex; @@ -821,7 +821,7 @@ s64 _sys_process_at_Exitspawn() s32 sys_interrupt_thread_disestablish(PPUThread& CPU, u32 ih) { - sysPrxForUser.Todo("sys_interrupt_thread_disestablish(ih=%d)", ih); + sysPrxForUser.Todo("sys_interrupt_thread_disestablish(ih=0x%x)", ih); return _sys_interrupt_thread_disestablish(ih, vm::stackvar>(CPU)); } @@ -1053,7 +1053,7 @@ s32 _sys_spu_printf_finalize() s32 _sys_spu_printf_attach_group(PPUThread& CPU, u32 group) { - sysPrxForUser.Warning("_sys_spu_printf_attach_group(group=%d)", group); + sysPrxForUser.Warning("_sys_spu_printf_attach_group(group=0x%x)", group); if (!spu_printf_agcb) { @@ -1065,7 +1065,7 @@ s32 _sys_spu_printf_attach_group(PPUThread& CPU, u32 group) s32 _sys_spu_printf_detach_group(PPUThread& CPU, u32 group) { - sysPrxForUser.Warning("_sys_spu_printf_detach_group(group=%d)", group); + sysPrxForUser.Warning("_sys_spu_printf_detach_group(group=0x%x)", group); if (!spu_printf_dgcb) { @@ -1077,7 +1077,7 @@ s32 _sys_spu_printf_detach_group(PPUThread& CPU, u32 group) s32 _sys_spu_printf_attach_thread(PPUThread& CPU, u32 thread) { - sysPrxForUser.Warning("_sys_spu_printf_attach_thread(thread=%d)", thread); + sysPrxForUser.Warning("_sys_spu_printf_attach_thread(thread=0x%x)", thread); if (!spu_printf_atcb) { @@ -1089,7 +1089,7 @@ s32 _sys_spu_printf_attach_thread(PPUThread& CPU, u32 thread) s32 _sys_spu_printf_detach_thread(PPUThread& CPU, u32 thread) { - sysPrxForUser.Warning("_sys_spu_printf_detach_thread(thread=%d)", thread); + sysPrxForUser.Warning("_sys_spu_printf_detach_thread(thread=0x%x)", thread); if (!spu_printf_dtcb) { diff --git a/rpcs3/Emu/SysCalls/SyncPrimitivesManager.cpp b/rpcs3/Emu/SysCalls/SyncPrimitivesManager.cpp deleted file mode 100644 index 9ddad0616c..0000000000 --- a/rpcs3/Emu/SysCalls/SyncPrimitivesManager.cpp +++ /dev/null @@ -1,75 +0,0 @@ -#include "stdafx.h" -#include "Utilities/Log.h" -#include "Emu/System.h" -#include "Emu/IdManager.h" -#include "Utilities/Thread.h" - -#include "lv2/sleep_queue.h" -#include "lv2/sys_lwmutex.h" -#include "lv2/sys_lwcond.h" -#include "lv2/sys_mutex.h" -#include "lv2/sys_cond.h" -#include "lv2/sys_semaphore.h" -#include "SyncPrimitivesManager.h" - -SemaphoreAttributes SyncPrimManager::GetSemaphoreData(u32 id) -{ - std::shared_ptr sem; - if (!Emu.GetIdManager().GetIDData(id, sem)) - { - return{}; - } - - return{ std::string((const char*)&sem->name, 8), sem->value, sem->max }; -} - -LwMutexAttributes SyncPrimManager::GetLwMutexData(u32 id) -{ - std::shared_ptr sq; - if (!Emu.GetIdManager().GetIDData(id, sq)) - { - return{}; - } - - return{ std::string((const char*)&sq->name, 8) }; -} - -std::string SyncPrimManager::GetSyncPrimName(u32 id, IDType type) -{ - switch (type) - { - case TYPE_LWCOND: - { - std::shared_ptr lw; - if (Emu.GetIdManager().GetIDData(id, lw)) - { - return std::string((const char*)&lw->name, 8); - } - break; - } - - case TYPE_MUTEX: - { - std::shared_ptr mutex; - if (Emu.GetIdManager().GetIDData(id, mutex)) - { - return std::string((const char*)&mutex->name, 8); - } - break; - } - - case TYPE_COND: - { - std::shared_ptr cond; - if (Emu.GetIdManager().GetIDData(id, cond)) - { - return std::string((const char*)&cond->name, 8); - } - break; - } - default: break; - } - - LOG_ERROR(GENERAL, "SyncPrimManager::GetSyncPrimName(id=%d, type=%d) failed", id, type); - return "NOT_FOUND"; -} diff --git a/rpcs3/Emu/SysCalls/SyncPrimitivesManager.h b/rpcs3/Emu/SysCalls/SyncPrimitivesManager.h deleted file mode 100644 index 34f20c05f8..0000000000 --- a/rpcs3/Emu/SysCalls/SyncPrimitivesManager.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -struct SemaphoreAttributes -{ - std::string name; - s32 count; - s32 max_count; -}; - -struct LwMutexAttributes -{ - std::string name; -}; - -class SyncPrimManager -{ -private: - -public: - SemaphoreAttributes GetSemaphoreData(u32 id); - LwMutexAttributes GetLwMutexData(u32 id); - std::string GetSyncPrimName(u32 id, IDType type); - - void Close() - { - } -}; \ No newline at end of file diff --git a/rpcs3/Emu/SysCalls/lv2/sys_cond.cpp b/rpcs3/Emu/SysCalls/lv2/sys_cond.cpp index 91eb6ef021..6dab5c62b4 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_cond.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_cond.cpp @@ -15,7 +15,7 @@ SysCallBase sys_cond("sys_cond"); s32 sys_cond_create(vm::ptr cond_id, u32 mutex_id, vm::ptr attr) { - sys_cond.Warning("sys_cond_create(cond_id=*0x%x, mutex_id=%d, attr=*0x%x)", cond_id, mutex_id, attr); + sys_cond.Warning("sys_cond_create(cond_id=*0x%x, mutex_id=0x%x, attr=*0x%x)", cond_id, mutex_id, attr); LV2_LOCK; @@ -46,7 +46,7 @@ s32 sys_cond_create(vm::ptr cond_id, u32 mutex_id, vm::ptr equeue_id, vm::ptr s32 sys_event_queue_destroy(u32 equeue_id, s32 mode) { - sys_event.Warning("sys_event_queue_destroy(equeue_id=%d, mode=%d)", equeue_id, mode); + sys_event.Warning("sys_event_queue_destroy(equeue_id=0x%x, mode=%d)", equeue_id, mode); LV2_LOCK; @@ -102,7 +102,7 @@ s32 sys_event_queue_destroy(u32 equeue_id, s32 mode) s32 sys_event_queue_tryreceive(u32 equeue_id, vm::ptr event_array, s32 size, vm::ptr number) { - sys_event.Log("sys_event_queue_tryreceive(equeue_id=%d, event_array=*0x%x, size=%d, number=*0x%x)", equeue_id, event_array, size, number); + sys_event.Log("sys_event_queue_tryreceive(equeue_id=0x%x, event_array=*0x%x, size=%d, number=*0x%x)", equeue_id, event_array, size, number); LV2_LOCK; @@ -140,7 +140,7 @@ s32 sys_event_queue_tryreceive(u32 equeue_id, vm::ptr event_array, s32 sys_event_queue_receive(PPUThread& CPU, u32 equeue_id, vm::ptr dummy_event, u64 timeout) { - sys_event.Log("sys_event_queue_receive(equeue_id=%d, event=*0x%x, timeout=0x%llx)", equeue_id, dummy_event, timeout); + sys_event.Log("sys_event_queue_receive(equeue_id=0x%x, event=*0x%x, timeout=0x%llx)", equeue_id, dummy_event, timeout); const u64 start_time = get_system_time(); @@ -177,7 +177,7 @@ s32 sys_event_queue_receive(PPUThread& CPU, u32 equeue_id, vm::ptr if (Emu.IsStopped()) { - sys_event.Warning("sys_event_queue_receive(equeue_id=%d) aborted", equeue_id); + sys_event.Warning("sys_event_queue_receive(equeue_id=0x%x) aborted", equeue_id); return CELL_OK; } @@ -199,7 +199,7 @@ s32 sys_event_queue_receive(PPUThread& CPU, u32 equeue_id, vm::ptr s32 sys_event_queue_drain(u32 equeue_id) { - sys_event.Log("sys_event_queue_drain(equeue_id=%d)", equeue_id); + sys_event.Log("sys_event_queue_drain(equeue_id=0x%x)", equeue_id); LV2_LOCK; @@ -241,7 +241,7 @@ s32 sys_event_port_create(vm::ptr eport_id, s32 port_type, u64 name) s32 sys_event_port_destroy(u32 eport_id) { - sys_event.Warning("sys_event_port_destroy(eport_id=%d)", eport_id); + sys_event.Warning("sys_event_port_destroy(eport_id=0x%x)", eport_id); LV2_LOCK; @@ -264,7 +264,7 @@ s32 sys_event_port_destroy(u32 eport_id) s32 sys_event_port_connect_local(u32 eport_id, u32 equeue_id) { - sys_event.Warning("sys_event_port_connect_local(eport_id=%d, equeue_id=%d)", eport_id, equeue_id); + sys_event.Warning("sys_event_port_connect_local(eport_id=0x%x, equeue_id=0x%x)", eport_id, equeue_id); LV2_LOCK; @@ -293,7 +293,7 @@ s32 sys_event_port_connect_local(u32 eport_id, u32 equeue_id) s32 sys_event_port_disconnect(u32 eport_id) { - sys_event.Warning("sys_event_port_disconnect(eport_id=%d)", eport_id); + sys_event.Warning("sys_event_port_disconnect(eport_id=0x%x)", eport_id); LV2_LOCK; @@ -320,7 +320,7 @@ s32 sys_event_port_disconnect(u32 eport_id) s32 sys_event_port_send(u32 eport_id, u64 data1, u64 data2, u64 data3) { - sys_event.Log("sys_event_port_send(eport_id=%d, data1=0x%llx, data2=0x%llx, data3=0x%llx)", eport_id, data1, data2, data3); + sys_event.Log("sys_event_port_send(eport_id=0x%x, data1=0x%llx, data2=0x%llx, data3=0x%llx)", eport_id, data1, data2, data3); LV2_LOCK; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_event_flag.cpp b/rpcs3/Emu/SysCalls/lv2/sys_event_flag.cpp index 927b622158..b645ff86c6 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_event_flag.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_event_flag.cpp @@ -56,7 +56,7 @@ s32 sys_event_flag_create(vm::ptr id, vm::ptr attr, u6 s32 sys_event_flag_destroy(u32 id) { - sys_event_flag.Warning("sys_event_flag_destroy(id=%d)", id); + sys_event_flag.Warning("sys_event_flag_destroy(id=0x%x)", id); LV2_LOCK; @@ -79,7 +79,7 @@ s32 sys_event_flag_destroy(u32 id) s32 sys_event_flag_wait(u32 id, u64 bitptn, u32 mode, vm::ptr result, u64 timeout) { - sys_event_flag.Log("sys_event_flag_wait(id=%d, bitptn=0x%llx, mode=0x%x, result=*0x%x, timeout=0x%llx)", id, bitptn, mode, result, timeout); + sys_event_flag.Log("sys_event_flag_wait(id=0x%x, bitptn=0x%llx, mode=0x%x, result=*0x%x, timeout=0x%llx)", id, bitptn, mode, result, timeout); const u64 start_time = get_system_time(); @@ -161,7 +161,7 @@ s32 sys_event_flag_wait(u32 id, u64 bitptn, u32 mode, vm::ptr result, u64 t if (Emu.IsStopped()) { - sys_event_flag.Warning("sys_event_flag_wait(id=%d) aborted", id); + sys_event_flag.Warning("sys_event_flag_wait(id=0x%x) aborted", id); return CELL_OK; } @@ -188,7 +188,7 @@ s32 sys_event_flag_wait(u32 id, u64 bitptn, u32 mode, vm::ptr result, u64 t s32 sys_event_flag_trywait(u32 id, u64 bitptn, u32 mode, vm::ptr result) { - sys_event_flag.Log("sys_event_flag_trywait(id=%d, bitptn=0x%llx, mode=0x%x, result=*0x%x)", id, bitptn, mode, result); + sys_event_flag.Log("sys_event_flag_trywait(id=0x%x, bitptn=0x%llx, mode=0x%x, result=*0x%x)", id, bitptn, mode, result); LV2_LOCK; @@ -248,7 +248,7 @@ s32 sys_event_flag_trywait(u32 id, u64 bitptn, u32 mode, vm::ptr result) s32 sys_event_flag_set(u32 id, u64 bitptn) { - sys_event_flag.Log("sys_event_flag_set(id=%d, bitptn=0x%llx)", id, bitptn); + sys_event_flag.Log("sys_event_flag_set(id=0x%x, bitptn=0x%llx)", id, bitptn); LV2_LOCK; @@ -276,7 +276,7 @@ s32 sys_event_flag_set(u32 id, u64 bitptn) s32 sys_event_flag_clear(u32 id, u64 bitptn) { - sys_event_flag.Log("sys_event_flag_clear(id=%d, bitptn=0x%llx)", id, bitptn); + sys_event_flag.Log("sys_event_flag_clear(id=0x%x, bitptn=0x%llx)", id, bitptn); LV2_LOCK; @@ -299,7 +299,7 @@ s32 sys_event_flag_clear(u32 id, u64 bitptn) s32 sys_event_flag_cancel(u32 id, vm::ptr num) { - sys_event_flag.Log("sys_event_flag_cancel(id=%d, num=*0x%x)", id, num); + sys_event_flag.Log("sys_event_flag_cancel(id=0x%x, num=*0x%x)", id, num); LV2_LOCK; @@ -335,7 +335,7 @@ s32 sys_event_flag_cancel(u32 id, vm::ptr num) s32 sys_event_flag_get(u32 id, vm::ptr flags) { - sys_event_flag.Log("sys_event_flag_get(id=%d, flags=*0x%x)", id, flags); + sys_event_flag.Log("sys_event_flag_get(id=0x%x, flags=*0x%x)", id, flags); LV2_LOCK; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_fs.cpp b/rpcs3/Emu/SysCalls/lv2/sys_fs.cpp index b025d2a11d..6637fae6d0 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_fs.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_fs.cpp @@ -496,7 +496,7 @@ s32 sys_fs_lseek(u32 fd, s64 offset, s32 whence, vm::ptr pos) s32 sys_fs_fget_block_size(u32 fd, vm::ptr sector_size, vm::ptr block_size, vm::ptr arg4, vm::ptr arg5) { - sys_fs.Todo("sys_fs_fget_block_size(fd=%d, sector_size=*0x%x, block_size=*0x%x, arg4=*0x%x, arg5=*0x%x)", fd, sector_size, block_size, arg4, arg5); + sys_fs.Todo("sys_fs_fget_block_size(fd=0x%x, sector_size=*0x%x, block_size=*0x%x, arg4=*0x%x, arg5=*0x%x)", fd, sector_size, block_size, arg4, arg5); const auto file = Emu.GetIdManager().GetIDData(fd); diff --git a/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp b/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp index 7b1fa1e730..5c20d92f56 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_lwcond.cpp @@ -23,7 +23,7 @@ void lwcond_create(sys_lwcond_t& lwcond, sys_lwmutex_t& lwmutex, u64 name) s32 _sys_lwcond_create(vm::ptr lwcond_id, u32 lwmutex_id, vm::ptr control, u64 name, u32 arg5) { - sys_lwcond.Warning("_sys_lwcond_create(lwcond_id=*0x%x, lwmutex_id=%d, control=*0x%x, name=0x%llx, arg5=0x%x)", lwcond_id, lwmutex_id, control, name, arg5); + sys_lwcond.Warning("_sys_lwcond_create(lwcond_id=*0x%x, lwmutex_id=0x%x, control=*0x%x, name=0x%llx, arg5=0x%x)", lwcond_id, lwmutex_id, control, name, arg5); std::shared_ptr cond(new lwcond_t(name)); @@ -34,7 +34,7 @@ s32 _sys_lwcond_create(vm::ptr lwcond_id, u32 lwmutex_id, vm::ptr lwmutex_id, u32 protocol, vm::ptrsignaled) { - sys_lwmutex.Fatal("_sys_lwmutex_unlock(lwmutex_id=%d): already signaled", lwmutex_id); + sys_lwmutex.Fatal("_sys_lwmutex_unlock(lwmutex_id=0x%x): already signaled", lwmutex_id); } mutex->signaled++; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_memory.cpp b/rpcs3/Emu/SysCalls/lv2/sys_memory.cpp index 3022274177..335873dc23 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_memory.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_memory.cpp @@ -45,9 +45,12 @@ s32 sys_memory_allocate_from_container(u32 size, u32 cid, u32 flags, u32 alloc_a sys_memory.Log("sys_memory_allocate_from_container(size=0x%x, cid=0x%x, flags=0x%x)", size, cid, flags); // Check if this container ID is valid. - std::shared_ptr ct; - if (!Emu.GetIdManager().GetIDData(cid, ct)) + const auto ct = Emu.GetIdManager().GetIDData(cid); + + if (!ct) + { return CELL_ESRCH; + } // Check page size. switch(flags) @@ -132,12 +135,15 @@ s32 sys_memory_container_create(vm::ptr cid, u32 yield_size) s32 sys_memory_container_destroy(u32 cid) { - sys_memory.Warning("sys_memory_container_destroy(cid=%d)", cid); + sys_memory.Warning("sys_memory_container_destroy(cid=0x%x)", cid); // Check if this container ID is valid. - std::shared_ptr ct; - if (!Emu.GetIdManager().GetIDData(cid, ct)) + const auto ct = Emu.GetIdManager().GetIDData(cid); + + if (!ct) + { return CELL_ESRCH; + } // Release the allocated memory and remove the ID. Memory.Free(ct->addr); @@ -148,12 +154,15 @@ s32 sys_memory_container_destroy(u32 cid) s32 sys_memory_container_get_size(vm::ptr mem_info, u32 cid) { - sys_memory.Warning("sys_memory_container_get_size(mem_info_addr=0x%x, cid=%d)", mem_info.addr(), cid); + sys_memory.Warning("sys_memory_container_get_size(mem_info_addr=0x%x, cid=0x%x)", mem_info.addr(), cid); // Check if this container ID is valid. - std::shared_ptr ct; - if (!Emu.GetIdManager().GetIDData(cid, ct)) + const auto ct = Emu.GetIdManager().GetIDData(cid); + + if (!ct) + { return CELL_ESRCH; + } // HACK: Return all memory. mem_info->total_user_memory = ct->size; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_mmapper.cpp b/rpcs3/Emu/SysCalls/lv2/sys_mmapper.cpp index bc5a78c60b..ddbee52e5b 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_mmapper.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_mmapper.cpp @@ -85,13 +85,16 @@ s32 sys_mmapper_allocate_memory(u32 size, u64 flags, vm::ptr mem_id) s32 sys_mmapper_allocate_memory_from_container(u32 size, u32 cid, u64 flags, vm::ptr mem_id) { - sys_mmapper.Warning("sys_mmapper_allocate_memory_from_container(size=0x%x, cid=%d, flags=0x%llx, mem_id_addr=0x%x)", + sys_mmapper.Warning("sys_mmapper_allocate_memory_from_container(size=0x%x, cid=0x%x, flags=0x%llx, mem_id_addr=0x%x)", size, cid, flags, mem_id.addr()); // Check if this container ID is valid. - std::shared_ptr ct; - if(!Emu.GetIdManager().GetIDData(cid, ct)) + const auto ct = Emu.GetIdManager().GetIDData(cid); + + if (!ct) + { return CELL_ESRCH; + } // Check page granularity. switch(flags & (SYS_MEMORY_PAGE_SIZE_1M | SYS_MEMORY_PAGE_SIZE_64K)) @@ -142,9 +145,12 @@ s32 sys_mmapper_free_memory(u32 mem_id) sys_mmapper.Warning("sys_mmapper_free_memory(mem_id=0x%x)", mem_id); // Check if this mem ID is valid. - std::shared_ptr info; - if(!Emu.GetIdManager().GetIDData(mem_id, info)) + const auto info = Emu.GetIdManager().GetIDData(mem_id); + + if (!info) + { return CELL_ESRCH; + } // Release the allocated memory and remove the ID. Emu.GetIdManager().RemoveID(mem_id); @@ -157,9 +163,12 @@ s32 sys_mmapper_map_memory(u32 start_addr, u32 mem_id, u64 flags) sys_mmapper.Warning("sys_mmapper_map_memory(start_addr=0x%x, mem_id=0x%x, flags=0x%llx)", start_addr, mem_id, flags); // Check if this mem ID is valid. - std::shared_ptr info; - if(!Emu.GetIdManager().GetIDData(mem_id, info)) + const auto info = Emu.GetIdManager().GetIDData(mem_id); + + if (!info) + { return CELL_ESRCH; + } // Map the memory into the process address. if(!Memory.Map(start_addr, info->size)) @@ -177,9 +186,12 @@ s32 sys_mmapper_search_and_map(u32 start_addr, u32 mem_id, u64 flags, u32 alloc_ start_addr, mem_id, flags, alloc_addr); // Check if this mem ID is valid. - std::shared_ptr info; - if(!Emu.GetIdManager().GetIDData(mem_id, info)) + const auto info = Emu.GetIdManager().GetIDData(mem_id); + + if (!info) + { return CELL_ESRCH; + } // Search for a mappable address. u32 addr; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_mutex.cpp b/rpcs3/Emu/SysCalls/lv2/sys_mutex.cpp index 79e2a064e4..a2241c62aa 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_mutex.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_mutex.cpp @@ -50,7 +50,7 @@ s32 sys_mutex_create(vm::ptr mutex_id, vm::ptr attr) s32 sys_mutex_destroy(u32 mutex_id) { - sys_mutex.Warning("sys_mutex_destroy(mutex_id=%d)", mutex_id); + sys_mutex.Warning("sys_mutex_destroy(mutex_id=0x%x)", mutex_id); LV2_LOCK; @@ -84,7 +84,7 @@ s32 sys_mutex_destroy(u32 mutex_id) s32 sys_mutex_lock(PPUThread& CPU, u32 mutex_id, u64 timeout) { - sys_mutex.Log("sys_mutex_lock(mutex_id=%d, timeout=0x%llx)", mutex_id, timeout); + sys_mutex.Log("sys_mutex_lock(mutex_id=0x%x, timeout=0x%llx)", mutex_id, timeout); const u64 start_time = get_system_time(); @@ -129,7 +129,7 @@ s32 sys_mutex_lock(PPUThread& CPU, u32 mutex_id, u64 timeout) if (Emu.IsStopped()) { - sys_mutex.Warning("sys_mutex_lock(id=%d) aborted", mutex_id); + sys_mutex.Warning("sys_mutex_lock(mutex_id=0x%x) aborted", mutex_id); return CELL_OK; } @@ -144,7 +144,7 @@ s32 sys_mutex_lock(PPUThread& CPU, u32 mutex_id, u64 timeout) s32 sys_mutex_trylock(PPUThread& CPU, u32 mutex_id) { - sys_mutex.Log("sys_mutex_trylock(mutex_id=%d)", mutex_id); + sys_mutex.Log("sys_mutex_trylock(mutex_id=0x%x)", mutex_id); LV2_LOCK; @@ -186,7 +186,7 @@ s32 sys_mutex_trylock(PPUThread& CPU, u32 mutex_id) s32 sys_mutex_unlock(PPUThread& CPU, u32 mutex_id) { - sys_mutex.Log("sys_mutex_unlock(mutex_id=%d)", mutex_id); + sys_mutex.Log("sys_mutex_unlock(mutex_id=0x%x)", mutex_id); LV2_LOCK; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp b/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp index fe75d53073..b3399303c3 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp @@ -36,7 +36,7 @@ void sys_ppu_thread_yield() s32 sys_ppu_thread_join(u32 thread_id, vm::ptr vptr) { - sys_ppu_thread.Warning("sys_ppu_thread_join(thread_id=%d, vptr=*0x%x)", thread_id, vptr); + sys_ppu_thread.Warning("sys_ppu_thread_join(thread_id=0x%x, vptr=*0x%x)", thread_id, vptr); const auto t = Emu.GetCPU().GetThread(thread_id); @@ -62,7 +62,7 @@ s32 sys_ppu_thread_join(u32 thread_id, vm::ptr vptr) s32 sys_ppu_thread_detach(u32 thread_id) { - sys_ppu_thread.Warning("sys_ppu_thread_detach(thread_id=%d)", thread_id); + sys_ppu_thread.Warning("sys_ppu_thread_detach(thread_id=0x%x)", thread_id); const auto t = Emu.GetCPU().GetThread(thread_id); @@ -90,7 +90,7 @@ void sys_ppu_thread_get_join_state(PPUThread& CPU, vm::ptr isjoinable) s32 sys_ppu_thread_set_priority(u32 thread_id, s32 prio) { - sys_ppu_thread.Log("sys_ppu_thread_set_priority(thread_id=%d, prio=%d)", thread_id, prio); + sys_ppu_thread.Log("sys_ppu_thread_set_priority(thread_id=0x%x, prio=%d)", thread_id, prio); const auto t = Emu.GetCPU().GetThread(thread_id); @@ -106,7 +106,7 @@ s32 sys_ppu_thread_set_priority(u32 thread_id, s32 prio) s32 sys_ppu_thread_get_priority(u32 thread_id, vm::ptr priop) { - sys_ppu_thread.Log("sys_ppu_thread_get_priority(thread_id=%d, priop=*0x%x)", thread_id, priop); + sys_ppu_thread.Log("sys_ppu_thread_get_priority(thread_id=0x%x, priop=*0x%x)", thread_id, priop); const auto t = Emu.GetCPU().GetThread(thread_id); @@ -132,7 +132,7 @@ s32 sys_ppu_thread_get_stack_information(PPUThread& CPU, vm::ptr thread_id, vm::ptr p s32 sys_ppu_thread_start(u32 thread_id) { - sys_ppu_thread.Warning("sys_ppu_thread_start(thread_id=%d)", thread_id); + sys_ppu_thread.Warning("sys_ppu_thread_start(thread_id=0x%x)", thread_id); const auto t = Emu.GetCPU().GetThread(thread_id, CPU_THREAD_PPU); @@ -246,7 +246,7 @@ s32 sys_ppu_thread_start(u32 thread_id) s32 sys_ppu_thread_rename(u32 thread_id, vm::ptr name) { - sys_ppu_thread.Error("sys_ppu_thread_rename(thread_id=%d, name=*0x%x)", thread_id, name); + sys_ppu_thread.Error("sys_ppu_thread_rename(thread_id=0x%x, name=*0x%x)", thread_id, name); const auto t = Emu.GetCPU().GetThread(thread_id, CPU_THREAD_PPU); diff --git a/rpcs3/Emu/SysCalls/lv2/sys_process.cpp b/rpcs3/Emu/SysCalls/lv2/sys_process.cpp index ccafdcab30..1d850ec15f 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_process.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_process.cpp @@ -326,7 +326,7 @@ s32 process_get_sdk_version(u32 pid, s32& ver) s32 sys_process_get_sdk_version(u32 pid, vm::ptr version) { - sys_process.Warning("sys_process_get_sdk_version(pid=%d, version_addr=0x%x)", pid, version.addr()); + sys_process.Warning("sys_process_get_sdk_version(pid=0x%x, version_addr=0x%x)", pid, version.addr()); s32 sdk_ver; s32 ret = process_get_sdk_version(pid, sdk_ver); @@ -343,13 +343,13 @@ s32 sys_process_get_sdk_version(u32 pid, vm::ptr version) s32 sys_process_kill(u32 pid) { - sys_process.Todo("sys_process_kill(pid=%d)", pid); + sys_process.Todo("sys_process_kill(pid=0x%x)", pid); return CELL_OK; } s32 sys_process_wait_for_child(u32 pid, vm::ptr status, u64 unk) { - sys_process.Todo("sys_process_wait_for_child(pid=%d, status_addr=0x%x, unk=0x%llx", + sys_process.Todo("sys_process_wait_for_child(pid=0x%x, status_addr=0x%x, unk=0x%llx", pid, status.addr(), unk); return CELL_OK; } diff --git a/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp b/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp index a9da2cf0fb..58b5fa1597 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_prx.cpp @@ -64,12 +64,15 @@ s32 sys_prx_load_module_on_memcontainer_by_fd() s32 sys_prx_start_module(s32 id, u32 args, u32 argp_addr, vm::ptr modres, u64 flags, vm::ptr pOpt) { - sys_prx.Todo("sys_prx_start_module(id=%d, args=%d, argp_addr=0x%x, modres_addr=0x%x, flags=0x%llx, pOpt=0x%x)", + sys_prx.Todo("sys_prx_start_module(id=0x%x, args=%d, argp_addr=0x%x, modres_addr=0x%x, flags=0x%llx, pOpt=0x%x)", id, args, argp_addr, modres.addr(), flags, pOpt.addr()); - std::shared_ptr prx; - if (!Emu.GetIdManager().GetIDData(id, prx)) + const auto prx = Emu.GetIdManager().GetIDData(id); + + if (!prx) + { return CELL_ESRCH; + } if (prx->isStarted) return CELL_PRX_ERROR_ALREADY_STARTED; @@ -79,12 +82,15 @@ s32 sys_prx_start_module(s32 id, u32 args, u32 argp_addr, vm::ptr modres, u s32 sys_prx_stop_module(s32 id, u32 args, u32 argp_addr, vm::ptr modres, u64 flags, vm::ptr pOpt) { - sys_prx.Todo("sys_prx_stop_module(id=%d, args=%d, argp_addr=0x%x, modres_addr=0x%x, flags=0x%llx, pOpt=0x%x)", + sys_prx.Todo("sys_prx_stop_module(id=0x%x, args=%d, argp_addr=0x%x, modres_addr=0x%x, flags=0x%llx, pOpt=0x%x)", id, args, argp_addr, modres.addr(), flags, pOpt.addr()); - std::shared_ptr prx; - if (!Emu.GetIdManager().GetIDData(id, prx)) + const auto prx = Emu.GetIdManager().GetIDData(id); + + if (!prx) + { return CELL_ESRCH; + } if (!prx->isStarted) return CELL_PRX_ERROR_ALREADY_STOPPED; @@ -94,12 +100,16 @@ s32 sys_prx_stop_module(s32 id, u32 args, u32 argp_addr, vm::ptr modres, u6 s32 sys_prx_unload_module(s32 id, u64 flags, vm::ptr pOpt) { - sys_prx.Todo("sys_prx_unload_module(id=%d, flags=0x%llx, pOpt=0x%x)", id, flags, pOpt.addr()); + sys_prx.Todo("sys_prx_unload_module(id=0x%x, flags=0x%llx, pOpt=0x%x)", id, flags, pOpt.addr()); // Get the PRX, free the used memory and delete the object and its ID - std::shared_ptr prx; - if (!Emu.GetIdManager().GetIDData(id, prx)) + const auto prx = Emu.GetIdManager().GetIDData(id); + + if (!prx) + { return CELL_ESRCH; + } + Memory.Free(prx->address); Emu.GetIdManager().RemoveID(id); diff --git a/rpcs3/Emu/SysCalls/lv2/sys_rwlock.cpp b/rpcs3/Emu/SysCalls/lv2/sys_rwlock.cpp index 020de0a723..9757486276 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_rwlock.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_rwlock.cpp @@ -45,7 +45,7 @@ s32 sys_rwlock_create(vm::ptr rw_lock_id, vm::ptr a s32 sys_rwlock_destroy(u32 rw_lock_id) { - sys_rwlock.Warning("sys_rwlock_destroy(rw_lock_id=%d)", rw_lock_id); + sys_rwlock.Warning("sys_rwlock_destroy(rw_lock_id=0x%x)", rw_lock_id); LV2_LOCK; @@ -68,7 +68,7 @@ s32 sys_rwlock_destroy(u32 rw_lock_id) s32 sys_rwlock_rlock(u32 rw_lock_id, u64 timeout) { - sys_rwlock.Log("sys_rwlock_rlock(rw_lock_id=%d, timeout=0x%llx)", rw_lock_id, timeout); + sys_rwlock.Log("sys_rwlock_rlock(rw_lock_id=0x%x, timeout=0x%llx)", rw_lock_id, timeout); const u64 start_time = get_system_time(); @@ -94,7 +94,7 @@ s32 sys_rwlock_rlock(u32 rw_lock_id, u64 timeout) if (Emu.IsStopped()) { - sys_rwlock.Warning("sys_rwlock_rlock(id=%d) aborted", rw_lock_id); + sys_rwlock.Warning("sys_rwlock_rlock(rw_lock_id=0x%x) aborted", rw_lock_id); return CELL_OK; } @@ -109,7 +109,7 @@ s32 sys_rwlock_rlock(u32 rw_lock_id, u64 timeout) s32 sys_rwlock_tryrlock(u32 rw_lock_id) { - sys_rwlock.Log("sys_rwlock_tryrlock(rw_lock_id=%d)", rw_lock_id); + sys_rwlock.Log("sys_rwlock_tryrlock(rw_lock_id=0x%x)", rw_lock_id); LV2_LOCK; @@ -132,7 +132,7 @@ s32 sys_rwlock_tryrlock(u32 rw_lock_id) s32 sys_rwlock_runlock(u32 rw_lock_id) { - sys_rwlock.Log("sys_rwlock_runlock(rw_lock_id=%d)", rw_lock_id); + sys_rwlock.Log("sys_rwlock_runlock(rw_lock_id=0x%x)", rw_lock_id); LV2_LOCK; @@ -158,7 +158,7 @@ s32 sys_rwlock_runlock(u32 rw_lock_id) s32 sys_rwlock_wlock(PPUThread& CPU, u32 rw_lock_id, u64 timeout) { - sys_rwlock.Log("sys_rwlock_wlock(rw_lock_id=%d, timeout=0x%llx)", rw_lock_id, timeout); + sys_rwlock.Log("sys_rwlock_wlock(rw_lock_id=0x%x, timeout=0x%llx)", rw_lock_id, timeout); const u64 start_time = get_system_time(); @@ -189,7 +189,7 @@ s32 sys_rwlock_wlock(PPUThread& CPU, u32 rw_lock_id, u64 timeout) if (Emu.IsStopped()) { - sys_rwlock.Warning("sys_rwlock_wlock(id=%d) aborted", rw_lock_id); + sys_rwlock.Warning("sys_rwlock_wlock(rw_lock_id=0x%x) aborted", rw_lock_id); return CELL_OK; } @@ -204,7 +204,7 @@ s32 sys_rwlock_wlock(PPUThread& CPU, u32 rw_lock_id, u64 timeout) s32 sys_rwlock_trywlock(PPUThread& CPU, u32 rw_lock_id) { - sys_rwlock.Log("sys_rwlock_trywlock(rw_lock_id=%d)", rw_lock_id); + sys_rwlock.Log("sys_rwlock_trywlock(rw_lock_id=0x%x)", rw_lock_id); LV2_LOCK; @@ -232,7 +232,7 @@ s32 sys_rwlock_trywlock(PPUThread& CPU, u32 rw_lock_id) s32 sys_rwlock_wunlock(PPUThread& CPU, u32 rw_lock_id) { - sys_rwlock.Log("sys_rwlock_wunlock(rw_lock_id=%d)", rw_lock_id); + sys_rwlock.Log("sys_rwlock_wunlock(rw_lock_id=0x%x)", rw_lock_id); LV2_LOCK; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp b/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp index 2c7f95e87a..56db6b34aa 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_semaphore.cpp @@ -57,7 +57,7 @@ s32 sys_semaphore_create(vm::ptr sem, vm::ptr at s32 sys_semaphore_destroy(u32 sem) { - sys_semaphore.Warning("sys_semaphore_destroy(sem=%d)", sem); + sys_semaphore.Warning("sys_semaphore_destroy(sem=0x%x)", sem); LV2_LOCK; @@ -80,7 +80,7 @@ s32 sys_semaphore_destroy(u32 sem) s32 sys_semaphore_wait(u32 sem, u64 timeout) { - sys_semaphore.Log("sys_semaphore_wait(sem=%d, timeout=0x%llx)", sem, timeout); + sys_semaphore.Log("sys_semaphore_wait(sem=0x%x, timeout=0x%llx)", sem, timeout); const u64 start_time = get_system_time(); @@ -121,7 +121,7 @@ s32 sys_semaphore_wait(u32 sem, u64 timeout) s32 sys_semaphore_trywait(u32 sem) { - sys_semaphore.Log("sys_semaphore_trywait(sem=%d)", sem); + sys_semaphore.Log("sys_semaphore_trywait(sem=0x%x)", sem); LV2_LOCK; @@ -144,7 +144,7 @@ s32 sys_semaphore_trywait(u32 sem) s32 sys_semaphore_post(u32 sem, s32 count) { - sys_semaphore.Log("sys_semaphore_post(sem=%d, count=%d)", sem, count); + sys_semaphore.Log("sys_semaphore_post(sem=0x%x, count=%d)", sem, count); LV2_LOCK; @@ -180,7 +180,7 @@ s32 sys_semaphore_post(u32 sem, s32 count) s32 sys_semaphore_get_value(u32 sem, vm::ptr count) { - sys_semaphore.Log("sys_semaphore_get_value(sem=%d, count=*0x%x)", sem, count); + sys_semaphore.Log("sys_semaphore_get_value(sem=0x%x, count=*0x%x)", sem, count); if (!count) { diff --git a/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp b/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp index 695b45c8f4..e5484a4c36 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_spu.cpp @@ -136,7 +136,7 @@ u32 spu_thread_initialize(u32 group_id, u32 spu_num, vm::ptr img, s32 sys_spu_thread_initialize(vm::ptr thread, u32 group_id, u32 spu_num, vm::ptr img, vm::ptr attr, vm::ptr arg) { - sys_spu.Warning("sys_spu_thread_initialize(thread=*0x%x, group=%d, spu_num=%d, img=*0x%x, attr=*0x%x, arg=*0x%x)", thread, group_id, spu_num, img, attr, arg); + sys_spu.Warning("sys_spu_thread_initialize(thread=*0x%x, group=0x%x, spu_num=%d, img=*0x%x, attr=*0x%x, arg=*0x%x)", thread, group_id, spu_num, img, attr, arg); LV2_LOCK; @@ -163,7 +163,7 @@ s32 sys_spu_thread_initialize(vm::ptr thread, u32 group_id, u32 spu_num, vm s32 sys_spu_thread_set_argument(u32 id, vm::ptr arg) { - sys_spu.Warning("sys_spu_thread_set_argument(id=%d, arg=*0x%x)", id, arg); + sys_spu.Warning("sys_spu_thread_set_argument(id=0x%x, arg=*0x%x)", id, arg); LV2_LOCK; @@ -190,7 +190,7 @@ s32 sys_spu_thread_set_argument(u32 id, vm::ptr arg) s32 sys_spu_thread_get_exit_status(u32 id, vm::ptr status) { - sys_spu.Warning("sys_spu_thread_get_exit_status(id=%d, status=*0x%x)", id, status); + sys_spu.Warning("sys_spu_thread_get_exit_status(id=0x%x, status=*0x%x)", id, status); LV2_LOCK; @@ -243,7 +243,7 @@ s32 sys_spu_thread_group_create(vm::ptr id, u32 num, s32 prio, vm::ptr cause, vm::ptr status) { - sys_spu.Warning("sys_spu_thread_group_join(id=%d, cause=*0x%x, status=*0x%x)", id, cause, status); + sys_spu.Warning("sys_spu_thread_group_join(id=0x%x, cause=*0x%x, status=*0x%x)", id, cause, status); LV2_LOCK; @@ -583,7 +583,7 @@ s32 sys_spu_thread_group_join(u32 id, vm::ptr cause, vm::ptr status) if (Emu.IsStopped()) { - sys_spu.Warning("sys_spu_thread_group_join(id=%d) aborted", id); + sys_spu.Warning("sys_spu_thread_group_join(id=0x%x) aborted", id); return CELL_OK; } @@ -622,7 +622,7 @@ s32 sys_spu_thread_group_join(u32 id, vm::ptr cause, vm::ptr status) s32 sys_spu_thread_write_ls(u32 id, u32 address, u64 value, u32 type) { - sys_spu.Log("sys_spu_thread_write_ls(id=%d, address=0x%x, value=0x%llx, type=%d)", id, address, value, type); + sys_spu.Log("sys_spu_thread_write_ls(id=0x%x, address=0x%x, value=0x%llx, type=%d)", id, address, value, type); const auto t = Emu.GetCPU().GetThread(id, CPU_THREAD_SPU); @@ -657,7 +657,7 @@ s32 sys_spu_thread_write_ls(u32 id, u32 address, u64 value, u32 type) s32 sys_spu_thread_read_ls(u32 id, u32 address, vm::ptr value, u32 type) { - sys_spu.Log("sys_spu_thread_read_ls(id=%d, address=0x%x, value=*0x%x, type=%d)", id, address, value, type); + sys_spu.Log("sys_spu_thread_read_ls(id=0x%x, address=0x%x, value=*0x%x, type=%d)", id, address, value, type); const auto t = Emu.GetCPU().GetThread(id, CPU_THREAD_SPU); @@ -692,7 +692,7 @@ s32 sys_spu_thread_read_ls(u32 id, u32 address, vm::ptr value, u32 type) s32 sys_spu_thread_write_spu_mb(u32 id, u32 value) { - sys_spu.Warning("sys_spu_thread_write_spu_mb(id=%d, value=0x%x)", id, value); + sys_spu.Warning("sys_spu_thread_write_spu_mb(id=0x%x, value=0x%x)", id, value); const auto t = Emu.GetCPU().GetThread(id, CPU_THREAD_SPU); @@ -710,7 +710,7 @@ s32 sys_spu_thread_write_spu_mb(u32 id, u32 value) s32 sys_spu_thread_set_spu_cfg(u32 id, u64 value) { - sys_spu.Warning("sys_spu_thread_set_spu_cfg(id=%d, value=0x%x)", id, value); + sys_spu.Warning("sys_spu_thread_set_spu_cfg(id=0x%x, value=0x%x)", id, value); const auto t = Emu.GetCPU().GetThread(id, CPU_THREAD_SPU); @@ -733,7 +733,7 @@ s32 sys_spu_thread_set_spu_cfg(u32 id, u64 value) s32 sys_spu_thread_get_spu_cfg(u32 id, vm::ptr value) { - sys_spu.Warning("sys_spu_thread_get_spu_cfg(id=%d, value=*0x%x)", id, value); + sys_spu.Warning("sys_spu_thread_get_spu_cfg(id=0x%x, value=*0x%x)", id, value); const auto t = Emu.GetCPU().GetThread(id, CPU_THREAD_SPU); @@ -751,7 +751,7 @@ s32 sys_spu_thread_get_spu_cfg(u32 id, vm::ptr value) s32 sys_spu_thread_write_snr(u32 id, u32 number, u32 value) { - sys_spu.Log("sys_spu_thread_write_snr(id=%d, number=%d, value=0x%x)", id, number, value); + sys_spu.Log("sys_spu_thread_write_snr(id=0x%x, number=%d, value=0x%x)", id, number, value); const auto t = Emu.GetCPU().GetThread(id, CPU_THREAD_SPU); @@ -774,7 +774,7 @@ s32 sys_spu_thread_write_snr(u32 id, u32 number, u32 value) s32 sys_spu_thread_group_connect_event(u32 id, u32 eq, u32 et) { - sys_spu.Warning("sys_spu_thread_group_connect_event(id=%d, eq=%d, et=%d)", id, eq, et); + sys_spu.Warning("sys_spu_thread_group_connect_event(id=0x%x, eq=0x%x, et=%d)", id, eq, et); LV2_LOCK; @@ -830,7 +830,7 @@ s32 sys_spu_thread_group_connect_event(u32 id, u32 eq, u32 et) s32 sys_spu_thread_group_disconnect_event(u32 id, u32 et) { - sys_spu.Warning("sys_spu_thread_group_disconnect_event(id=%d, et=%d)", id, et); + sys_spu.Warning("sys_spu_thread_group_disconnect_event(id=0x%x, et=%d)", id, et); LV2_LOCK; @@ -893,7 +893,7 @@ s32 sys_spu_thread_tryreceive_event(u32 spuq_num, mem32_t d1, mem32_t d2, mem32_ s32 sys_spu_thread_connect_event(u32 id, u32 eq, u32 et, u8 spup) { - sys_spu.Warning("sys_spu_thread_connect_event(id=%d, eq=%d, et=%d, spup=%d)", id, eq, et, spup); + sys_spu.Warning("sys_spu_thread_connect_event(id=0x%x, eq=0x%x, et=%d, spup=%d)", id, eq, et, spup); LV2_LOCK; @@ -927,7 +927,7 @@ s32 sys_spu_thread_connect_event(u32 id, u32 eq, u32 et, u8 spup) s32 sys_spu_thread_disconnect_event(u32 id, u32 et, u8 spup) { - sys_spu.Warning("sys_spu_thread_disconnect_event(id=%d, event_type=%d, spup=%d)", id, et, spup); + sys_spu.Warning("sys_spu_thread_disconnect_event(id=0x%x, et=%d, spup=%d)", id, et, spup); LV2_LOCK; @@ -960,7 +960,7 @@ s32 sys_spu_thread_disconnect_event(u32 id, u32 et, u8 spup) s32 sys_spu_thread_bind_queue(u32 id, u32 spuq, u32 spuq_num) { - sys_spu.Warning("sys_spu_thread_bind_queue(id=%d, spuq=%d, spuq_num=0x%x)", id, spuq, spuq_num); + sys_spu.Warning("sys_spu_thread_bind_queue(id=0x%x, spuq=0x%x, spuq_num=0x%x)", id, spuq, spuq_num); LV2_LOCK; @@ -1006,7 +1006,7 @@ s32 sys_spu_thread_bind_queue(u32 id, u32 spuq, u32 spuq_num) s32 sys_spu_thread_unbind_queue(u32 id, u32 spuq_num) { - sys_spu.Warning("sys_spu_thread_unbind_queue(id=%d, spuq_num=0x%x)", id, spuq_num); + sys_spu.Warning("sys_spu_thread_unbind_queue(id=0x%x, spuq_num=0x%x)", id, spuq_num); LV2_LOCK; @@ -1034,7 +1034,7 @@ s32 sys_spu_thread_unbind_queue(u32 id, u32 spuq_num) s32 sys_spu_thread_group_connect_event_all_threads(u32 id, u32 eq, u64 req, vm::ptr spup) { - sys_spu.Warning("sys_spu_thread_group_connect_event_all_threads(id=%d, eq=%d, req=0x%llx, spup=*0x%x)", id, eq, req, spup); + sys_spu.Warning("sys_spu_thread_group_connect_event_all_threads(id=0x%x, eq=0x%x, req=0x%llx, spup=*0x%x)", id, eq, req, spup); LV2_LOCK; @@ -1109,7 +1109,7 @@ s32 sys_spu_thread_group_connect_event_all_threads(u32 id, u32 eq, u64 req, vm:: s32 sys_spu_thread_group_disconnect_event_all_threads(u32 id, u8 spup) { - sys_spu.Warning("sys_spu_thread_group_disconnect_event_all_threads(id=%d, spup=%d)", id, spup); + sys_spu.Warning("sys_spu_thread_group_disconnect_event_all_threads(id=0x%x, spup=%d)", id, spup); LV2_LOCK; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_timer.cpp b/rpcs3/Emu/SysCalls/lv2/sys_timer.cpp index 2954aa29a5..c1fb0ffa59 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_timer.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_timer.cpp @@ -18,7 +18,7 @@ s32 sys_timer_create(vm::ptr timer_id) std::shared_ptr timer(new lv2_timer_t); - thread_t(fmt::format("Timer[%d] Thread", (*timer_id = Emu.GetIdManager().GetNewID(timer, TYPE_TIMER))), [timer]() + thread_t(fmt::format("Timer[0x%x] Thread", (*timer_id = Emu.GetIdManager().GetNewID(timer, TYPE_TIMER))), [timer]() { LV2_LOCK; @@ -58,7 +58,7 @@ s32 sys_timer_create(vm::ptr timer_id) s32 sys_timer_destroy(u32 timer_id) { - sys_timer.Warning("sys_timer_destroy(timer_id=%d)", timer_id); + sys_timer.Warning("sys_timer_destroy(timer_id=0x%x)", timer_id); LV2_LOCK; @@ -81,7 +81,7 @@ s32 sys_timer_destroy(u32 timer_id) s32 sys_timer_get_information(u32 timer_id, vm::ptr info) { - sys_timer.Warning("sys_timer_get_information(timer_id=%d, info=*0x%x)", timer_id, info); + sys_timer.Warning("sys_timer_get_information(timer_id=0x%x, info=*0x%x)", timer_id, info); LV2_LOCK; @@ -102,7 +102,7 @@ s32 sys_timer_get_information(u32 timer_id, vm::ptr inf s32 _sys_timer_start(u32 timer_id, u64 base_time, u64 period) { - sys_timer.Warning("_sys_timer_start(timer_id=%d, base_time=0x%llx, period=0x%llx)", timer_id, base_time, period); + sys_timer.Warning("_sys_timer_start(timer_id=0x%x, base_time=0x%llx, period=0x%llx)", timer_id, base_time, period); const u64 start_time = get_system_time(); @@ -174,7 +174,7 @@ s32 sys_timer_stop(u32 timer_id) s32 sys_timer_connect_event_queue(u32 timer_id, u32 queue_id, u64 name, u64 data1, u64 data2) { - sys_timer.Warning("sys_timer_connect_event_queue(timer_id=%d, queue_id=%d, name=0x%llx, data1=0x%llx, data2=0x%llx)", timer_id, queue_id, name, data1, data2); + sys_timer.Warning("sys_timer_connect_event_queue(timer_id=0x%x, queue_id=0x%x, name=0x%llx, data1=0x%llx, data2=0x%llx)", timer_id, queue_id, name, data1, data2); LV2_LOCK; @@ -201,7 +201,7 @@ s32 sys_timer_connect_event_queue(u32 timer_id, u32 queue_id, u64 name, u64 data s32 sys_timer_disconnect_event_queue(u32 timer_id) { - sys_timer.Warning("sys_timer_disconnect_event_queue(timer_id=%d)", timer_id); + sys_timer.Warning("sys_timer_disconnect_event_queue(timer_id=0x%x)", timer_id); LV2_LOCK; diff --git a/rpcs3/Emu/SysCalls/lv2/sys_vm.cpp b/rpcs3/Emu/SysCalls/lv2/sys_vm.cpp index f68bc2895b..da5144cd04 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_vm.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_vm.cpp @@ -12,7 +12,7 @@ std::shared_ptr current_ct; s32 sys_vm_memory_map(u32 vsize, u32 psize, u32 cid, u64 flag, u64 policy, u32 addr) { - sys_vm.Error("sys_vm_memory_map(vsize=0x%x, psize=0x%x, cidr=0x%x, flags=0x%llx, policy=0x%llx, addr_addr=0x%x)", + sys_vm.Error("sys_vm_memory_map(vsize=0x%x, psize=0x%x, cid=0x%x, flags=0x%llx, policy=0x%llx, addr_addr=0x%x)", vsize, psize, cid, flag, policy, addr); // Check virtual size. @@ -39,8 +39,12 @@ s32 sys_vm_memory_map(u32 vsize, u32 psize, u32 cid, u64 flag, u64 policy, u32 a else { // Check memory container. - std::shared_ptr ct; - if(!Emu.GetIdManager().GetIDData(cid, ct)) return CELL_ESRCH; + const auto ct = Emu.GetIdManager().GetIDData(cid); + + if (!ct) + { + return CELL_ESRCH; + } current_ct = ct; } diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index e5d6bf05b3..ae8ee24328 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -26,7 +26,6 @@ #include "Emu/Audio/AudioManager.h" #include "Emu/FS/VFS.h" #include "Emu/Event.h" -#include "Emu/SysCalls/SyncPrimitivesManager.h" #include "Loader/PSF.h" @@ -55,7 +54,6 @@ Emulator::Emulator() , m_callback_manager(new CallbackManager()) , m_event_manager(new EventManager()) , m_module_manager(new ModuleManager()) - , m_sync_prim_manager(new SyncPrimManager()) , m_vfs(new VFS()) { m_loader.register_handler(new loader::handlers::elf32); @@ -379,7 +377,6 @@ void Emulator::Stop() GetMouseManager().Close(); GetCallbackManager().Clear(); GetModuleManager().Close(); - GetSyncPrimManager().Close(); CurGameInfo.Reset(); Memory.Close(); diff --git a/rpcs3/Emu/System.h b/rpcs3/Emu/System.h index 5798d3522a..3d31c35d08 100644 --- a/rpcs3/Emu/System.h +++ b/rpcs3/Emu/System.h @@ -152,7 +152,6 @@ public: std::vector& GetMarkedPoints() { return m_marked_points; } EventManager& GetEventManager() { return *m_event_manager; } ModuleManager& GetModuleManager() { return *m_module_manager; } - SyncPrimManager& GetSyncPrimManager() { return *m_sync_prim_manager; } void SetTLSData(u32 addr, u32 filesz, u32 memsz) { diff --git a/rpcs3/Gui/KernelExplorer.cpp b/rpcs3/Gui/KernelExplorer.cpp index c29eceee25..bf451f35bf 100644 --- a/rpcs3/Gui/KernelExplorer.cpp +++ b/rpcs3/Gui/KernelExplorer.cpp @@ -6,7 +6,14 @@ #include "Emu/IdManager.h" #include "Emu/CPU/CPUThreadManager.h" #include "Emu/CPU/CPUThread.h" -#include "Emu/SysCalls/SyncPrimitivesManager.h" +#include "Emu/SysCalls/lv2/sleep_queue.h" +#include "Emu/SysCalls/lv2/sys_lwmutex.h" +#include "Emu/SysCalls/lv2/sys_lwcond.h" +#include "Emu/SysCalls/lv2/sys_mutex.h" +#include "Emu/SysCalls/lv2/sys_cond.h" +#include "Emu/SysCalls/lv2/sys_semaphore.h" +#include "Emu/SysCalls/lv2/sys_event.h" + #include "KernelExplorer.h" KernelExplorer::KernelExplorer(wxWindow* parent) @@ -51,6 +58,22 @@ void KernelExplorer::Update() const auto& root = m_tree->AddRoot(fmt::Format("Process, ID = 0x00000001, Total Memory Usage = 0x%x (%0.2f MB)", total_memory_usage, (float)total_memory_usage / (1024 * 1024))); + union name64 + { + u64 u64_data; + char string[8]; + + name64(u64 data) + : u64_data(data & 0x00ffffffffffffffull) + { + } + + const char* operator &() const + { + return string; + } + }; + // TODO: FileSystem // Semaphores @@ -59,10 +82,10 @@ void KernelExplorer::Update() { sprintf(name, "Semaphores (%d)", count); const auto& node = m_tree->AppendItem(root, name); - for (const auto& id : Emu.GetIdManager().GetTypeIDs(TYPE_SEMAPHORE)) + for (const auto id : Emu.GetIdManager().GetTypeIDs(TYPE_SEMAPHORE)) { - auto sem = Emu.GetSyncPrimManager().GetSemaphoreData(id); - sprintf(name, "Semaphore: ID = 0x%08x '%s', Count = %d, Max Count = %d", id, sem.name.c_str(), sem.count, sem.max_count); + const auto sem = Emu.GetIdManager().GetIDData(id); + sprintf(name, "Semaphore: ID = 0x%x '%s', Count = %d, Max Count = %d, Waiters = %d", id, &name64(sem->name), sem->value.load(), sem->max, sem->waiters.load()); m_tree->AppendItem(node, name); } } @@ -73,9 +96,10 @@ void KernelExplorer::Update() { sprintf(name, "Mutexes (%d)", count); const auto& node = m_tree->AppendItem(root, name); - for (const auto& id : Emu.GetIdManager().GetTypeIDs(TYPE_MUTEX)) + for (const auto id : Emu.GetIdManager().GetTypeIDs(TYPE_MUTEX)) { - sprintf(name, "Mutex: ID = 0x%08x '%s'", id, Emu.GetSyncPrimManager().GetSyncPrimName(id, TYPE_MUTEX).c_str()); + const auto mutex = Emu.GetIdManager().GetIDData(id); + sprintf(name, "Mutex: ID = 0x%x '%s'", id, &name64(mutex->name)); m_tree->AppendItem(node, name); } } @@ -84,12 +108,12 @@ void KernelExplorer::Update() count = Emu.GetIdManager().GetTypeCount(TYPE_LWMUTEX); if (count) { - sprintf(name, "Light Weight Mutexes (%d)", count); + sprintf(name, "Lightweight Mutexes (%d)", count); const auto& node = m_tree->AppendItem(root, name); - for (const auto& id : Emu.GetIdManager().GetTypeIDs(TYPE_LWMUTEX)) + for (const auto id : Emu.GetIdManager().GetTypeIDs(TYPE_LWMUTEX)) { - auto lwm = Emu.GetSyncPrimManager().GetLwMutexData(id); - sprintf(name, "LW Mutex: ID = 0x%08x '%s'", id, lwm.name.c_str()); + const auto lwm = Emu.GetIdManager().GetIDData(id); + sprintf(name, "Lightweight Mutex: ID = 0x%x '%s'", id, &name64(lwm->name)); m_tree->AppendItem(node, name); } } @@ -100,9 +124,10 @@ void KernelExplorer::Update() { sprintf(name, "Condition Variables (%d)", count); const auto& node = m_tree->AppendItem(root, name); - for (const auto& id : Emu.GetIdManager().GetTypeIDs(TYPE_COND)) + for (const auto id : Emu.GetIdManager().GetTypeIDs(TYPE_COND)) { - sprintf(name, "Condition Variable: ID = 0x%08x '%s'", id, Emu.GetSyncPrimManager().GetSyncPrimName(id, TYPE_COND).c_str()); + const auto cond = Emu.GetIdManager().GetIDData(id); + sprintf(name, "Condition Variable: ID = 0x%x '%s'", id, &name64(cond->name)); m_tree->AppendItem(node, name); } } @@ -111,11 +136,12 @@ void KernelExplorer::Update() count = Emu.GetIdManager().GetTypeCount(TYPE_LWCOND); if (count) { - sprintf(name, "Light Weight Condition Variables (%d)", count); + sprintf(name, "Lightweight Condition Variables (%d)", count); const auto& node = m_tree->AppendItem(root, name); - for (const auto& id : Emu.GetIdManager().GetTypeIDs(TYPE_LWCOND)) + for (const auto id : Emu.GetIdManager().GetTypeIDs(TYPE_LWCOND)) { - sprintf(name, "LW Condition Variable: ID = 0x%08x '%s'", id, Emu.GetSyncPrimManager().GetSyncPrimName(id, TYPE_LWCOND).c_str()); + const auto lwc = Emu.GetIdManager().GetIDData(id); + sprintf(name, "Lightweight Condition Variable: ID = 0x%x '%s'", id, &name64(lwc->name)); m_tree->AppendItem(node, name); } } @@ -126,9 +152,24 @@ void KernelExplorer::Update() { sprintf(name, "Event Queues (%d)", count); const auto& node = m_tree->AppendItem(root, name); - for (const auto& id : Emu.GetIdManager().GetTypeIDs(TYPE_EVENT_QUEUE)) + for (const auto id : Emu.GetIdManager().GetTypeIDs(TYPE_EVENT_QUEUE)) { - sprintf(name, "Event Queue: ID = 0x%08x", id); + const auto queue = Emu.GetIdManager().GetIDData(id); + sprintf(name, "Event Queue: ID = 0x%x '%s', Key = %#llx", id, &name64(queue->name), queue->key); + m_tree->AppendItem(node, name); + } + } + + // Event Ports + count = Emu.GetIdManager().GetTypeCount(TYPE_EVENT_PORT); + if (count) + { + sprintf(name, "Event Ports (%d)", count); + const auto& node = m_tree->AppendItem(root, name); + for (const auto id : Emu.GetIdManager().GetTypeIDs(TYPE_EVENT_PORT)) + { + const auto port = Emu.GetIdManager().GetIDData(id); + sprintf(name, "Event Port: ID = 0x%x, Name = %#llx", id, port->name); m_tree->AppendItem(node, name); } } @@ -143,7 +184,7 @@ void KernelExplorer::Update() //m_tree->AppendItem(node, name); for (const auto& id : Emu.GetIdManager().GetTypeIDs(TYPE_PRX)) { - sprintf(name, "PRX: ID = 0x%08x", id); + sprintf(name, "PRX: ID = 0x%x", id); m_tree->AppendItem(node, name); } } @@ -156,7 +197,7 @@ void KernelExplorer::Update() const auto& node = m_tree->AppendItem(root, name); for (const auto& id : Emu.GetIdManager().GetTypeIDs(TYPE_MEM)) { - sprintf(name, "Memory Container: ID = 0x%08x", id); + sprintf(name, "Memory Container: ID = 0x%x", id); m_tree->AppendItem(node, name); } } @@ -169,7 +210,7 @@ void KernelExplorer::Update() const auto& node = m_tree->AppendItem(root, name); for (const auto& id : Emu.GetIdManager().GetTypeIDs(TYPE_EVENT_FLAG)) { - sprintf(name, "Event Flag: ID = 0x%08x", id); + sprintf(name, "Event Flag: ID = 0x%x", id); m_tree->AppendItem(node, name); } } diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index c3329dfd33..22323e0905 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -282,7 +282,6 @@ - @@ -522,7 +521,6 @@ - diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index 6ef16d3491..d1cea17c07 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -647,9 +647,6 @@ Emu\CPU\ARMv7\Modules - - Emu\SysCalls - Utilities @@ -1447,9 +1444,6 @@ Emu\SysCalls - - Emu\SysCalls - Crypto