diff options
author | Lioncash <mathew1800@gmail.com> | 2021-04-07 00:35:47 -0400 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2021-04-07 00:35:49 -0400 |
commit | 03dda80e2bb5c748d014063610d43be1be6f46ca (patch) | |
tree | cee0a37496d00afa90fbc1d418a3c657d8d7f87e /src | |
parent | 7feb490f83904c7a2724beb89cce20ec7292b07b (diff) |
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.cpp | 5 | ||||
-rw-r--r-- | src/core/hle/kernel/process_capability.h | 2 |
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) continue; } - if (svc_number >= svc_capabilities.size()) { - LOG_ERROR(Kernel, "Process svc capability is out of range! svc_number={}", svc_number); - return ResultOutOfRange; - } - svc_capabilities[svc_number] = true; } 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 { class ProcessCapabilities { public: using InterruptCapabilities = std::bitset<1024>; - using SyscallCapabilities = std::bitset<128>; + using SyscallCapabilities = std::bitset<192>; ProcessCapabilities() = default; ProcessCapabilities(const ProcessCapabilities&) = delete; |