diff options
author | Lioncash <mathew1800@gmail.com> | 2018-12-21 05:40:30 +0100 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2018-12-21 13:05:34 +0100 |
commit | d09fb82113e0a912a66872baa0dd6f1f5c1ef315 (patch) | |
tree | 2fefada8ebc3e145ea1c3c53be1c00a81bcc97ce /src | |
parent | kernel/process_capability: Handle handle table capability flags (diff) | |
download | yuzu-d09fb82113e0a912a66872baa0dd6f1f5c1ef315.tar yuzu-d09fb82113e0a912a66872baa0dd6f1f5c1ef315.tar.gz yuzu-d09fb82113e0a912a66872baa0dd6f1f5c1ef315.tar.bz2 yuzu-d09fb82113e0a912a66872baa0dd6f1f5c1ef315.tar.lz yuzu-d09fb82113e0a912a66872baa0dd6f1f5c1ef315.tar.xz yuzu-d09fb82113e0a912a66872baa0dd6f1f5c1ef315.tar.zst yuzu-d09fb82113e0a912a66872baa0dd6f1f5c1ef315.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/kernel/process_capability.cpp | 8 | ||||
-rw-r--r-- | src/core/hle/kernel/process_capability.h | 11 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/core/hle/kernel/process_capability.cpp b/src/core/hle/kernel/process_capability.cpp index 7ee0ad9cc..3a2164b25 100644 --- a/src/core/hle/kernel/process_capability.cpp +++ b/src/core/hle/kernel/process_capability.cpp @@ -342,7 +342,13 @@ ResultCode ProcessCapabilities::HandleHandleTableFlags(u32 flags) { } ResultCode ProcessCapabilities::HandleDebugFlags(u32 flags) { - // TODO: Implement + const u32 reserved = flags >> 19; + if (reserved != 0) { + return ERR_RESERVED_VALUE; + } + + is_debuggable = (flags & 0x20000) != 0; + can_force_debug = (flags & 0x40000) != 0; return RESULT_SUCCESS; } diff --git a/src/core/hle/kernel/process_capability.h b/src/core/hle/kernel/process_capability.h index 7b9f24d51..fbc8812a3 100644 --- a/src/core/hle/kernel/process_capability.h +++ b/src/core/hle/kernel/process_capability.h @@ -165,6 +165,17 @@ public: return kernel_version; } + /// Whether or not this process can be debugged. + bool IsDebuggable() const { + return is_debuggable; + } + + /// Whether or not this process can forcibly debug another + /// process, even if that process is not considered debuggable. + bool CanForceDebug() const { + return can_force_debug; + } + private: /// Attempts to parse a given sequence of capability descriptors. /// |