ksys: Start adding OverlayArenaSystem

This commit is contained in:
Léo Lam
2020-09-20 17:59:41 +02:00
parent 5ac991b0e0
commit 8756ccdd07
25 changed files with 875 additions and 37 deletions
+2 -2
View File
@@ -131,7 +131,7 @@ protected:
friend class TaskQueueBase;
friend class TaskThread;
enum class Flag {
enum class Flag : u8 {
DeleteDelegate = 0x1,
DoNotDeleteDelegate = 0x2,
NeedsToSignalEvent = 0x4,
@@ -173,7 +173,7 @@ protected:
}
u8 mLaneId = 0;
sead::TypedBitFlag<Flag, u8> mFlags = Flag::DoNotDeleteDelegate;
sead::TypedBitFlag<Flag> mFlags = Flag::DoNotDeleteDelegate;
bool mDelegateResult = false;
TaskDelegate* mDelegate = nullptr;
void* mUserData = nullptr;
@@ -57,7 +57,6 @@ void TaskQueueBase::clear() {
mQueueEmptyEvent.wait();
}
// NON_MATCHING: swapped operands for a csel. The arg.set_flag1 check looks suspicious.
bool TaskQueueBase::init(const InitArg& arg) {
if (arg.max_num_threads == 0)
return false;
@@ -65,10 +64,7 @@ bool TaskQueueBase::init(const InitArg& arg) {
if (!mThreads.tryAllocBuffer(arg.max_num_threads, arg.heap))
return false;
if (!arg.enable_locks)
mFlags.reset(Flag::Lock);
else
mFlags.set(Flag::Lock);
mFlags.change(Flag::Lock, arg.enable_locks);
if (arg.num_lanes <= 0 || arg.num_lanes > 0x100)
return false;
+2 -2
View File
@@ -88,7 +88,7 @@ public:
void fetchTask(Task** out_task);
protected:
enum class Flag {
enum class Flag : u8 {
Lock = 0x1,
PreventThreadPoolChanges = 0x2,
};
@@ -145,7 +145,7 @@ protected:
void notifyThreadsForNewTasks();
sead::TypedBitFlag<Flag, u8> mFlags;
sead::TypedBitFlag<Flag> mFlags;
sead::OffsetList<Task> mActiveTasks;
sead::Buffer<Lane> mLanes;
Event mQueueEmptyEvent;