ksys/res: Add MemoryTask

This commit is contained in:
Léo Lam 2020-09-27 14:41:13 +02:00
parent 50ebf5116f
commit 2930173f65
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
4 changed files with 87 additions and 14 deletions

View File

@ -93183,23 +93183,23 @@
0x00000071012bb0fc,EventResourceLoadArg::b,368,_ZN4ksys3res11ControlTask12prepareImpl_EPNS_4util11TaskRequestE
0x00000071012bb26c,EventResourceLoadArg::null1,4,_ZN4ksys3res11ControlTask6onRun_Ev
0x00000071012bb270,EventResourceLoadArg::c,32,_ZN4ksys3res11ControlTask14preRemoveImpl_Ev
0x00000071012bb290,sub_71012BB290,156,
0x00000071012bb32c,sub_71012BB32C,20,
0x00000071012bb340,nullsub_4782,4,
0x00000071012bb344,sub_71012BB344,52,
0x00000071012bb378,sub_71012BB378,260,
0x00000071012bb47c,nullsub_4783,4,
0x00000071012bb480,sub_71012BB480,32,
0x00000071012bb290,sub_71012BB290,156,_ZN4ksys3res10MemoryTaskC1EPN4sead4HeapE
0x00000071012bb32c,sub_71012BB32C,20,_ZN4ksys3res10MemoryTaskD2Ev
0x00000071012bb340,nullsub_4782,4,_ZN4ksys3res14MemoryTaskDataD2Ev
0x00000071012bb344,sub_71012BB344,52,_ZN4ksys3res10MemoryTaskD0Ev
0x00000071012bb378,sub_71012BB378,260,_ZN4ksys3res10MemoryTask12prepareImpl_EPNS_4util11TaskRequestE
0x00000071012bb47c,nullsub_4783,4,_ZN4ksys3res10MemoryTask6onRun_Ev
0x00000071012bb480,sub_71012BB480,32,_ZN4ksys3res10MemoryTask14preRemoveImpl_Ev
0x00000071012bb4a0,EventResourceLoadArg::rtti1,288,_ZNK4ksys3res11ControlTask27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x00000071012bb5c0,EventResourceLoadArg::rtti2,92,_ZNK4ksys3res11ControlTask18getRuntimeTypeInfoEv
0x00000071012bb61c,sub_71012BB61C,288,
0x00000071012bb73c,sub_71012BB73C,92,
0x00000071012bb61c,sub_71012BB61C,288,_ZNK4ksys3res10MemoryTask27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x00000071012bb73c,sub_71012BB73C,92,_ZNK4ksys3res10MemoryTask18getRuntimeTypeInfoEv
0x00000071012bb798,sub_71012BB798,204,_ZNK4ksys3res15ControlTaskData27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x00000071012bb864,sub_71012BB864,92,_ZNK4ksys3res15ControlTaskData18getRuntimeTypeInfoEv
0x00000071012bb8c0,sub_71012BB8C0,52,_ZN4ksys3res15ControlTaskDataD0Ev
0x00000071012bb8f4,sub_71012BB8F4,204,
0x00000071012bb9c0,sub_71012BB9C0,92,
0x00000071012bba1c,j__ZdlPv_1295,4,
0x00000071012bb8f4,sub_71012BB8F4,204,_ZNK4ksys3res14MemoryTaskData27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x00000071012bb9c0,sub_71012BB9C0,92,_ZNK4ksys3res14MemoryTaskData18getRuntimeTypeInfoEv
0x00000071012bba1c,j__ZdlPv_1295,4,_ZN4ksys3res14MemoryTaskDataD0Ev
0x00000071012bba20,sub_71012BBA20,48,
0x00000071012bba50,sub_71012BBA50,144,
0x00000071012bbae0,sub_71012BBAE0,20,

Can't render this file because it is too large.

View File

@ -86,6 +86,8 @@ target_sources(uking PRIVATE
resCache.h
resCacheCriticalSection.cpp
resCacheCriticalSection.h
resControlTask.cpp
resControlTask.h
resCurrentResNameMgr.cpp
resCurrentResNameMgr.h
resEntryFactory.cpp
@ -94,8 +96,8 @@ target_sources(uking PRIVATE
resHandle.h
resLoadRequest.cpp
resLoadRequest.h
resControlTask.cpp
resControlTask.h
resMemoryTask.cpp
resMemoryTask.h
resOffsetReadFileDevice.cpp
resOffsetReadFileDevice.h
resResourceMgrTask.cpp

View File

@ -0,0 +1,23 @@
#include "KingSystem/Resource/resMemoryTask.h"
#include "KingSystem/Resource/resSystem.h"
namespace ksys::res {
MemoryTask::MemoryTask(sead::Heap* heap) : util::ManagedTask(heap) {}
void MemoryTask::onRun_() {}
void MemoryTask::prepareImpl_(util::TaskRequest* req_) {
auto* req = static_cast<MemoryTaskRequest*>(req_);
mData._8 = req->mData_8;
mData._c = req->mData_c;
mData.mStr = req->mData_mStr;
setUserData();
}
void MemoryTask::preRemoveImpl_() {
if (returnFalse())
stubbedLogFunction();
}
} // namespace ksys::res

View File

@ -0,0 +1,48 @@
#pragma once
#include <prim/seadSafeString.h>
#include "KingSystem/Utils/Thread/ManagedTask.h"
#include "KingSystem/Utils/Thread/TaskData.h"
#include "KingSystem/Utils/Types.h"
namespace ksys::res {
class MemoryTaskData : public util::TaskData {
SEAD_RTTI_OVERRIDE(MemoryTaskData, util::TaskData)
public:
virtual ~MemoryTaskData() = default;
bool _8 = false;
s32 _c = -1;
sead::FixedSafeString<128> mStr;
};
KSYS_CHECK_SIZE_NX150(MemoryTaskData, 0xa8);
class MemoryTask : public util::ManagedTask {
SEAD_RTTI_OVERRIDE(MemoryTask, util::ManagedTask)
public:
explicit MemoryTask(sead::Heap* heap);
~MemoryTask() override { ; }
private:
void onRun_() override;
void prepareImpl_(util::TaskRequest* req) override;
void preRemoveImpl_() override;
void setUserData() { util::ManagedTask::setUserData(&mData); }
MemoryTaskData mData;
};
KSYS_CHECK_SIZE_NX150(MemoryTask, 0x168);
class MemoryTaskRequest : public util::TaskRequest {
SEAD_RTTI_OVERRIDE(MemoryTaskRequest, util::TaskRequest)
public:
MemoryTaskRequest() = default;
bool mData_8 = false;
s32 mData_c = -1;
sead::FixedSafeString<128> mData_mStr;
};
} // namespace ksys::res