diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-12-16 17:47:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-16 17:47:35 +0100 |
commit | 4f600f746aa731beadd2572bf66fc22562120d53 (patch) | |
tree | 10c68058c42ca086faaf0e76836cf5ba37f327fe /src/core/arm/nce/arm_nce.h | |
parent | Merge pull request #12290 from liamwhite/deferred-path-split (diff) | |
parent | nce: adjust initialization for repeated calls (diff) | |
download | yuzu-4f600f746aa731beadd2572bf66fc22562120d53.tar yuzu-4f600f746aa731beadd2572bf66fc22562120d53.tar.gz yuzu-4f600f746aa731beadd2572bf66fc22562120d53.tar.bz2 yuzu-4f600f746aa731beadd2572bf66fc22562120d53.tar.lz yuzu-4f600f746aa731beadd2572bf66fc22562120d53.tar.xz yuzu-4f600f746aa731beadd2572bf66fc22562120d53.tar.zst yuzu-4f600f746aa731beadd2572bf66fc22562120d53.zip |
Diffstat (limited to 'src/core/arm/nce/arm_nce.h')
-rw-r--r-- | src/core/arm/nce/arm_nce.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/core/arm/nce/arm_nce.h b/src/core/arm/nce/arm_nce.h index f55c10d1d..be9b304c4 100644 --- a/src/core/arm/nce/arm_nce.h +++ b/src/core/arm/nce/arm_nce.h @@ -61,7 +61,8 @@ private: static void ReturnToRunCodeByExceptionLevelChangeSignalHandler(int sig, void* info, void* raw_context); static void BreakFromRunCodeSignalHandler(int sig, void* info, void* raw_context); - static void GuestFaultSignalHandler(int sig, void* info, void* raw_context); + static void GuestAlignmentFaultSignalHandler(int sig, void* info, void* raw_context); + static void GuestAccessFaultSignalHandler(int sig, void* info, void* raw_context); static void LockThreadParameters(void* tpidr); static void UnlockThreadParameters(void* tpidr); @@ -70,8 +71,11 @@ private: // C++ implementation functions for assembly definitions. static void* RestoreGuestContext(void* raw_context); static void SaveGuestContext(GuestContext* ctx, void* raw_context); - static bool HandleGuestFault(GuestContext* ctx, void* info, void* raw_context); - static void HandleHostFault(int sig, void* info, void* raw_context); + static bool HandleFailedGuestFault(GuestContext* ctx, void* info, void* raw_context); + static bool HandleGuestAlignmentFault(GuestContext* ctx, void* info, void* raw_context); + static bool HandleGuestAccessFault(GuestContext* ctx, void* info, void* raw_context); + static void HandleHostAlignmentFault(int sig, void* info, void* raw_context); + static void HandleHostAccessFault(int sig, void* info, void* raw_context); public: Core::System& m_system; @@ -83,6 +87,9 @@ public: // Core context. GuestContext m_guest_ctx{}; Kernel::KThread* m_running_thread{}; + + // Stack for signal processing. + std::unique_ptr<u8[]> m_stack{}; }; } // namespace Core |