コード例 #1
0
        private void SvcCancelSynchronization(AThreadState ThreadState)
        {
            int ThreadHandle = (int)ThreadState.X0;

            KThread Thread = Process.HandleTable.GetData <KThread>(ThreadHandle);

            if (Thread == null)
            {
                Device.Log.PrintWarning(LogClass.KernelSvc, $"Invalid thread handle 0x{ThreadHandle:x8}!");

                ThreadState.X0 = MakeError(ErrorModule.Kernel, KernelErr.InvalidHandle);

                return;
            }

            Thread.CancelSynchronization();

            ThreadState.X0 = 0;
        }
コード例 #2
0
ファイル: SvcThreadSync.cs プロジェクト: reuniware/Ryujinx
        private void SvcCancelSynchronization(CpuThreadState threadState)
        {
            int threadHandle = (int)threadState.X0;

            Logger.PrintDebug(LogClass.KernelSvc, "ThreadHandle = 0x" + threadHandle.ToString("x8"));

            KThread thread = _process.HandleTable.GetKThread(threadHandle);

            if (thread == null)
            {
                Logger.PrintWarning(LogClass.KernelSvc, $"Invalid thread handle 0x{threadHandle:x8}!");

                threadState.X0 = MakeError(ErrorModule.Kernel, KernelErr.InvalidHandle);

                return;
            }

            thread.CancelSynchronization();

            threadState.X0 = 0;
        }