فهرست منبع

hle: kernel: KSystemControl: Update to reflect board-specific behavior.

bunnei 5 سال پیش
والد
کامیت
5762517728

+ 2 - 1
src/core/CMakeLists.txt

@@ -141,6 +141,8 @@ add_library(core STATIC
     hardware_interrupt_manager.h
     hle/ipc.h
     hle/ipc_helpers.h
+    hle/kernel/board/nintendo/nx/k_system_control.cpp
+    hle/kernel/board/nintendo/nx/k_system_control.h
     hle/kernel/client_port.cpp
     hle/kernel/client_port.h
     hle/kernel/client_session.cpp
@@ -198,7 +200,6 @@ add_library(core STATIC
     hle/kernel/k_spin_lock.h
     hle/kernel/k_synchronization_object.cpp
     hle/kernel/k_synchronization_object.h
-    hle/kernel/k_system_control.cpp
     hle/kernel/k_system_control.h
     hle/kernel/k_thread.cpp
     hle/kernel/k_thread.h

+ 6 - 2
src/core/hle/kernel/k_system_control.cpp → src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp

@@ -6,7 +6,11 @@
 
 #include "core/hle/kernel/k_system_control.h"
 
-namespace Kernel {
+namespace Kernel::Board::Nintendo::Nx {
+
+bool KSystemControl::Init::ShouldIncreaseThreadResourceLimit() {
+    return true;
+}
 
 namespace {
 template <typename F>
@@ -39,4 +43,4 @@ u64 KSystemControl::GenerateRandomRange(u64 min, u64 max) {
     return GenerateUniformRange(min, max, GenerateRandomU64);
 }
 
-} // namespace Kernel
+} // namespace Kernel::Board::Nintendo::Nx

+ 22 - 0
src/core/hle/kernel/board/nintendo/nx/k_system_control.h

@@ -0,0 +1,22 @@
+// Copyright 2021 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "common/common_types.h"
+
+namespace Kernel::Board::Nintendo::Nx {
+
+class KSystemControl {
+public:
+    class Init {
+    public:
+        static bool ShouldIncreaseThreadResourceLimit();
+    };
+
+    static u64 GenerateRandomRange(u64 min, u64 max);
+    static u64 GenerateRandomU64();
+};
+
+} // namespace Kernel::Board::Nintendo::Nx

+ 11 - 7
src/core/hle/kernel/k_system_control.h

@@ -6,14 +6,18 @@
 
 #include "common/common_types.h"
 
-namespace Kernel {
+#define BOARD_NINTENDO_NX
+
+#ifdef BOARD_NINTENDO_NX
 
-class KSystemControl {
-public:
-    KSystemControl() = default;
+#include "core/hle/kernel/board/nintendo/nx/k_system_control.h"
 
-    static u64 GenerateRandomRange(u64 min, u64 max);
-    static u64 GenerateRandomU64();
-};
+namespace Kernel {
+
+using Kernel::Board::Nintendo::Nx::KSystemControl;
 
 } // namespace Kernel
+
+#else
+#error "Unknown board for KSystemControl"
+#endif