summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2021-04-07 00:35:47 -0400
committerGravatar Lioncash2021-04-07 00:35:49 -0400
commit03dda80e2bb5c748d014063610d43be1be6f46ca (patch)
treecee0a37496d00afa90fbc1d418a3c657d8d7f87e /src
parentMerge pull request #6141 from lat9nq/cfg_gphcs_stack_use (diff)
downloadyuzu-03dda80e2bb5c748d014063610d43be1be6f46ca.tar.gz
yuzu-03dda80e2bb5c748d014063610d43be1be6f46ca.tar.xz
yuzu-03dda80e2bb5c748d014063610d43be1be6f46ca.zip
process_capability: Handle extended SVC range
12.x extended the range of SVC IDs, so we need to expand the range of bits that need to be tested. The upside of this is that we can eliminate a range check, given the whole range is used.
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/kernel/process_capability.cpp5
-rw-r--r--src/core/hle/kernel/process_capability.h2
2 files changed, 1 insertions, 6 deletions
diff --git a/src/core/hle/kernel/process_capability.cpp b/src/core/hle/kernel/process_capability.cpp
index 3fc326eab..1006ee50c 100644
--- a/src/core/hle/kernel/process_capability.cpp
+++ b/src/core/hle/kernel/process_capability.cpp
@@ -281,11 +281,6 @@ ResultCode ProcessCapabilities::HandleSyscallFlags(u32& set_svc_bits, u32 flags)
281 continue; 281 continue;
282 } 282 }
283 283
284 if (svc_number >= svc_capabilities.size()) {
285 LOG_ERROR(Kernel, "Process svc capability is out of range! svc_number={}", svc_number);
286 return ResultOutOfRange;
287 }
288
289 svc_capabilities[svc_number] = true; 284 svc_capabilities[svc_number] = true;
290 } 285 }
291 286
diff --git a/src/core/hle/kernel/process_capability.h b/src/core/hle/kernel/process_capability.h
index 73ad197fa..b7a9b2e45 100644
--- a/src/core/hle/kernel/process_capability.h
+++ b/src/core/hle/kernel/process_capability.h
@@ -68,7 +68,7 @@ enum class ProgramType {
68class ProcessCapabilities { 68class ProcessCapabilities {
69public: 69public:
70 using InterruptCapabilities = std::bitset<1024>; 70 using InterruptCapabilities = std::bitset<1024>;
71 using SyscallCapabilities = std::bitset<128>; 71 using SyscallCapabilities = std::bitset<192>;
72 72
73 ProcessCapabilities() = default; 73 ProcessCapabilities() = default;
74 ProcessCapabilities(const ProcessCapabilities&) = delete; 74 ProcessCapabilities(const ProcessCapabilities&) = delete;