summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_thread.cpp (unfollow)
Commit message (Expand)AuthorFilesLines
2023-10-22kernel: signal thread on termination completedLiam1-4/+7
2023-10-22kernel: add missing TLR clearLiam1-0/+1
2023-10-22kernel: update KProcessLiam1-7/+9
2023-07-19general: Silence -Wshadow{,-uncaptured-local} warningslat9nq1-2/+2
2023-07-15Fixes and workarounds to make UBSan happier on macOScomex1-1/+1
2023-06-22Remove memory allocations in some hot pathsKelebek11-5/+3
2023-06-17k_thread: Use a mutex and cond_var to sync boollat9nq1-4/+11
2023-03-24memory: rename global memory references to application memoryLiam1-3/+8
2023-03-22kernel: use KTypedAddress for addressesLiam1-13/+15
2023-03-13kernel: additional style fixes to KThread, KProcessLiam1-17/+17
2023-03-13kernel: convert KThread to new styleLiam1-244/+239
2023-03-13kernel: prefer std::addressofLiam1-2/+2
2023-03-13kernel: remove kernel_Liam1-100/+100
2023-03-08kernel: add timer pointer to KThreadQueueLiam1-1/+3
2023-03-08kernel: clone fpu status on CreateThreadLiam1-1/+23
2023-03-01kernel: be more careful about kernel address keysLiam1-5/+7
2023-03-01kernel: refactor priority inheritance to represent locks as C++ objectsLiam1-84/+185
2023-02-21service: refactor server architectureLiam1-0/+20
2023-02-13kernel: use GetCurrentProcessLiam1-0/+8
2023-01-24kernel: split SetAddressKey into user and kernel variantsLiam1-4/+4
2023-01-23kernel: fix incorrect locking order in suspensionLiam1-13/+0
2022-11-10kernel/svc_types: refreshLiam1-2/+2
2022-11-04service_thread: register service threads to the logical owner processLiam1-2/+2
2022-10-30k_thread: fix single coreLiam1-2/+4
2022-10-25kernel: refactor dummy thread wakeupsLiam1-20/+18
2022-10-19core: hle: kernel: Use result macros for new/changed code.bunnei1-20/+21
2022-10-19core: hle: kernel: k_thread: Implement thread termination DPC.bunnei1-0/+76
2022-07-15kernel: Ensure all uses of disable_count are balancedLiam1-2/+6
2022-07-15kernel: be more careful about initialization path for HLE threadsLiam1-1/+7
2022-07-15kernel: fix single-core preemption pointsLiam1-6/+0
2022-07-15kernel: fix issues with single core modeLiam1-2/+3
2022-07-15kernel: use KScheduler from mesosphereLiam1-2/+9
2022-07-10kernel: fix usage of waiter_list in FinalizeLiam1-3/+9
2022-07-02common/fiber: make fibers easier to useLiam1-10/+5
2022-06-27core: Replace all instances of ResultCode with Resultgerman771-26/+24
2022-06-25kernel: clean up waiting implementationLiam1-3/+4
2022-06-23kernel: make current thread pointer thread localLiam1-4/+8
2022-06-18kernel: wait for threads to stop on pauseLiam1-0/+13
2022-06-16kernel: fix some uses of disable_countLiam1-3/+1
2022-06-14kernel: implement KProcess suspensionLiam1-4/+4
2022-06-14common: Change semantics of UNREACHABLE to unconditionally crashLiam1-1/+1
2022-06-02core/debugger: Support reading guest thread namesLiam1-0/+4
2022-04-23general: Convert source file copyright comments over to SPDXMorph1-3/+2
2022-04-12core: hle: kernel: k_thread: Rework dummy thread waiting.bunnei1-24/+15
2022-04-04k_thread: Fix data racelat9nq1-2/+2
2022-03-19core: Reduce unused includesameerj1-3/+0
2022-03-15core: hle: kernel: k_process: Implement thread local storage accurately.bunnei1-2/+2
2022-03-15core: hle: kernel: k_thread: Ensure host Fiber is freed.bunnei1-0/+3
2022-01-23hle: kernel: KThread: Improve Increment/Decrement RunningThreadCount.bunnei1-8/+3
2022-01-22hle: kernel: KThread: Ensure host (dummy) threads block on locking.bunnei1-0/+37
2022-01-21hle: kernel: KThread: DummyThread can be waited, ensure wait_queue is not nullptr.bunnei1-6/+6
2022-01-21hle: kernel: KThread: Decrease DummyThread priority to ensure it is never scheduled.bunnei1-2/+3
2022-01-21hle: kernel: KThread: Ensure dummy threads never call EndWait.bunnei1-0/+5
2022-01-21hle: kernel: KThread: Rename thread_type_for_debugging -> thread_type.bunnei1-1/+1
2022-01-15core: hle: kernel: KThread: Integrate with KWorkerTask and implement DoWorkerTaskImpl.bunnei1-1/+22
2022-01-15core: hle: kernel: KThread: Replace Suspend with UpdateState & various updates.bunnei1-31/+24
2021-12-31core: hle: kernel: Implement thread pinning.bunnei1-3/+41
2021-12-23 core: hle: kernel: KThread: X18 should be a cryptographically random number.bunnei1-0/+2
2021-12-07hle: kernel: Remove unnecessary virtual specifier on CancelWait.bunnei1-2/+2
2021-12-07hle: kernel: k_thread: Skip reschedule on DisableDispatch with SC.bunnei1-0/+5
2021-12-07hle: kernel: k_thread: Rename sleeping_queue -> wait_queue.bunnei1-11/+11
2021-12-07hle: kernel: k_thread: Treat dummy threads as a special type.bunnei1-1/+3
2021-12-07hle: kernel: Add a flag for indicating that the kernel is currently shutting down.bunnei1-0/+5
2021-12-07hle: kernel: Cleanup to match coding style.bunnei1-5/+4
2021-12-07hle: kernel: KThread: Migrate to updated KThreadQueue (part 2).bunnei1-29/+19
2021-12-07hle: kernel: KThread: Migrate to updated KThreadQueue (part 1).bunnei1-57/+64
2021-12-07hle: kernel: KThread: Remove tracking of sync object from threads.bunnei1-5/+2
2021-12-07hle: kernel: Update KThreadQueue and migrate KSynchronizationObject.bunnei1-2/+40
2021-12-07core: hle: kernel: Disable dispatch count tracking on single core.bunnei1-1/+5
2021-12-07core: hle: kernel: k_thread: Add KScopedDisableDispatch.bunnei1-1/+16
2021-11-04core: Remove unused includesameerj1-4/+0
2021-08-26Revert "kernel: Various improvements to scheduler"bunnei1-19/+2
2021-08-14core: hle: kernel: Disable dispatch count tracking on single core.bunnei1-1/+3
2021-08-07core: hle: kernel: k_thread: Add KScopedDisableDispatch.bunnei1-1/+16
2021-06-02general: Replace RESULT_SUCCESS with ResultSuccessMorph1-9/+9
2021-05-29k_thread: Move dereference after null check in Initialize()Lioncash1-5/+5
2021-05-08kernel: Eliminate variable shadowingLioncash1-16/+16
2021-05-06hle: kernel: Migrate to KHandleTable.bunnei1-1/+1
2021-05-06hle: kernel: Rename Process to KProcess.bunnei1-5/+5
2021-05-06hle: kernel: Remove deprecated Object class.bunnei1-1/+0
2021-05-06hle: kernel: KThread: Remove incorrect resource release.bunnei1-2/+1
2021-05-06hle: kernel: KThread: Add missing resource hint release.bunnei1-1/+1
2021-05-06hle: kernel: Migrate KSharedMemory to KAutoObject.bunnei1-0/+3
2021-05-06hle: kernel: Migrate KThread to KAutoObject.bunnei1-52/+48
2021-03-06hle: kernel: KThread: Rework dummy threads & fix memory leak.bunnei1-19/+31
2021-03-06Revert "core: Switch to unique_ptr for usage of Common::Fiber."bunnei1-1/+5
2021-02-27core: Switch to unique_ptr for usage of Common::Fiber.bunnei1-5/+1
2021-02-19hle: kernel: Migrate MemoryLayout to KMemoryLayout.bunnei1-4/+4
2021-02-13kernel: Unify result codes (#5890)Chloe1-16/+14
2021-02-03Simplify limitableresource namesChloe Marcec1-1/+1
2021-01-30kernel: Rewrite resource limit to be more accurateChloe Marcec1-2/+2
2021-01-29hle: kernel: KThread: Release thread resource on thread exit.bunnei1-0/+1
2021-01-29yuzu: debugger: Ignore HLE threads.bunnei1-7/+8
2021-01-29hle: kernel: Allocate a dummy KThread for each host thread, and use it for scheduling.bunnei1-5/+1
2021-01-29kernel: Fix build errors.bunnei1-2/+7
2021-01-29hle: kernel: Recode implementation of KThread to be more accurate.bunnei1-197/+796
2021-01-29hle: kernel: KThread: Clean up thread priorities.bunnei1-9/+1
2021-01-29hle: kernel: KThread: Reorganize thread priority defaults.bunnei1-7/+6
2021-01-29hle: kernel: KThread: Remove thread types that do not exist.bunnei1-12/+9
2021-01-29core: hle: kernel: Rename Thread to KThread.bunnei1-39/+39
2021-01-11hle: kernel: thread: Preserve thread wait reason for debugging only.bunnei1-1/+5
2021-01-11core: hle: Integrate new KConditionVariable and KAddressArbiter implementations.bunnei1-100/+127
2021-01-11hle: kernel: thread: Replace ThreadStatus/ThreadSchedStatus with a single ThreadState.bunnei1-51/+30
2021-01-11core: hle: kernel: Update KSynchronizationObject.bunnei1-47/+19
2020-12-06hle: kernel: Migrate to KScopedSchedulerLock.bunnei1-9/+8
2020-12-06hle: kernel: Separate KScopedSchedulerLockAndSleep from k_scheduler.bunnei1-1/+2
2020-12-06hle: kernel: Rewrite scheduler implementation based on Mesopshere.bunnei1-37/+13
2020-12-06hle: kernel: Port KAffinityMask from Mesosphere.bunnei1-5/+6
2020-11-29hle: kernel: thread: Remove unused "Running" state.bunnei1-5/+0
2020-11-29hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.bunnei1-25/+2
2020-11-04core: Remove usage of unicornLioncash1-14/+3
2020-10-21Revert "core: Fix clang build"bunnei1-1/+1
2020-10-18core: Fix clang buildLioncash1-1/+1
2020-07-16cpu_manager: Mark function getters as staticLioncash1-1/+1
2020-07-15kernel/thread: Remove global GetCurrentThread()Lioncash1-17/+5
2020-06-27Kernel: Correct Host Context on Threads and Scheduler.Fernando Sahmkow1-1/+1
2020-06-27General: Cleanup legacy code.Fernando Sahmkow1-34/+0
2020-06-27SingleCore: Use Cycle Timing instead of Host Timing.Fernando Sahmkow1-4/+8
2020-06-27Thread: Release the ARM Interface on exitting.Fernando Sahmkow1-0/+2
2020-06-27General: Move ARM_Interface into Threads.Fernando Sahmkow1-0/+35
2020-06-27General: Fix Stop functionFernando Sahmkow1-3/+5
2020-06-27Kernel: Preempt Single core on redudant yields.Fernando Sahmkow1-9/+12
2020-06-27Scheduler: Set last running time on thread.Fernando Sahmkow1-4/+0
2020-06-27ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.Fernando Sahmkow1-3/+3
2020-06-27SVC: Correct SetThreadActivity.Fernando Sahmkow1-21/+40
2020-06-27SCC: Small corrections to CancelSynchronizationFernando Sahmkow1-2/+3
2020-06-27Kernel: Correct Signal on Thread Death and Setup Sync Objects on Thread for DebuggingFernando Sahmkow1-8/+7
2020-06-27Core: Correct HLE Event Callbacks and other issues.Fernando Sahmkow1-18/+17
2020-06-27SVC: Correct WaitSynchronization, WaitProcessWideKey, SignalProcessWideKey.Fernando Sahmkow1-1/+1
2020-06-27SVC: Correct SendSyncRequest.Fernando Sahmkow1-4/+10
2020-06-27SVC: Correct ArbitrateUnlockFernando Sahmkow1-1/+1
2020-06-27SVC: Correct SignalEvent, ClearEvent, ResetSignal, WaitSynchronization, CancelSynchronization, ArbitrateLockFernando Sahmkow1-5/+9
2020-06-27SVC: Correct GetThreadPriority, SetThreadPriority, GetThreadCoreMask, SetThreadCoreMask, GetCurrentProcessorNumberFernando Sahmkow1-4/+2
2020-06-27SVC: Correct CreateThread, StartThread, ExitThread, SleepThread.Fernando Sahmkow1-20/+18
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow1-136/+96
2020-04-29kernel: Don't fail silentlyDavid Marcec1-0/+2
2020-04-19thread: FPCR.FZ is likely not 1MerryMage1-2/+1
2020-04-15kernel/thread: Resolve -Wswitch warningsLioncash1-0/+2
2020-03-03core: Implement separate A32/A64 ARM interfaces.bunnei1-14/+17
2020-02-22Kernel: Rename ThreadCallbackHandleTable and Setup Thread Ids on Kernel.Fernando Sahmkow1-6/+6
2020-02-12kernel/thread: Remove trivial usages of the global system accessorLioncash1-2/+2
2020-02-12Core: Set all hardware emulation constants in a single file.Fernando Sahmkow1-7/+8
2020-02-11Kernel: Refactor synchronization to better match REFernando Sahmkow1-1/+5
2020-02-11Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.Fernando Sahmkow1-7/+9
2020-01-26Kernel: Remove a few global instances from the kernel.Fernando Sahmkow1-1/+1
2020-01-26Core: Refactor CpuCoreManager to CpuManager and Cpu to Core Manager.Fernando Sahmkow1-2/+1
2019-11-27core/memory: Migrate over address checking functions to the new Memory classLioncash1-2/+2
2019-11-25kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. (#3154)bunnei1-19/+20
2019-11-21Kernel: Correct behavior of Condition Variables to be more similar to real hardware.Fernando Sahmkow1-0/+8
2019-11-16Kernel: Correct Cancel Synchronization.Fernando Sahmkow1-2/+5
2019-11-12kernel: Resolve sign conversion warningsLioncash1-30/+18
2019-10-15Kernel Thread: Cleanup THREADPROCESSORID_DONT_UPDATE.Fernando Sahmkow1-1/+1
2019-10-15Kernel: Address Feedback 2Fernando Sahmkow1-3/+3
2019-10-15Kernel: Clang FormatFernando Sahmkow1-4/+4
2019-10-15Kernel: Reverse global accessor removal.Fernando Sahmkow1-8/+8
2019-10-15Kernel: Address Feedback.Fernando Sahmkow1-9/+8
2019-10-15Kernel_Thread: Eliminate most global accessors.Fernando Sahmkow1-11/+11
2019-10-15Kernel: Correct Paused schedulingFernando Sahmkow1-3/+1
2019-10-15Kernel: Corrections to Wait Objects clearing in which a thread could still be signalled after a timeout or a cancel.Fernando Sahmkow1-0/+1
2019-10-15Scheduler: Add protections for Yield bombingFernando Sahmkow1-6/+6
2019-10-15Kernel: Style and CorrectionsFernando Sahmkow1-24/+30
2019-10-15Addapt thread class to the new SchedulerFernando Sahmkow1-59/+183
2019-07-04kernel/process: Decouple TLS handling from threadsLioncash1-2/+2
2019-06-16Core_Timing: Make core_timing threadsafe by default.Fernando Sahmkow1-3/+3
2019-06-05core/core_timing_util: Use std::chrono types for specifying time unitsLioncash1-2/+2
2019-04-17kernel/thread: Unify wait synchronization typesLioncash1-3/+2
2019-04-17kernel/svc: Migrate svcCancelSynchronization behavior to a thread functionLioncash1-0/+6
2019-04-15kernel/thread: Remove BoostPriority()Lioncash1-5/+0
2019-04-02kernel/svc: Implement svcGetThreadListLioncash1-0/+4
2019-04-02kernel/thread: Make AllWaitObjectsReady() a const qualified member functionLioncash1-1/+1
2019-04-02kernel/wait_object: Make ShouldWait() take thread members by pointer-to-constLioncash1-1/+1
2019-04-01kernel/thread: Avoid sign conversion within GetCommandBufferAddress()Lioncash1-2/+2
2019-04-01kernel/thread: Make parameter of GetWaitObjectIndex() const qualifiedLioncash1-2/+2
2019-03-30kernel/scheduler: Remove unused parameter to AddThread()Lioncash1-2/+2
2019-03-20Fix crash caused by 2238.Fernando Sahmkow1-1/+2
2019-03-20Add CondVar Thread State.Fernando Sahmkow1-0/+1
2019-03-16kernel/thread: Actually remove the definition of ExitCurrentThread()Lioncash1-6/+0
2019-03-16kernel/thread: Migrate WaitCurrentThread_Sleep into the Thread interfaceLioncash1-5/+8
2019-03-16kernel/thread: Expand documentation of nominal_priority and current_priorityLioncash1-1/+3
2019-03-16kernel/thread: Make bracing consistent within UpdatePriority()Lioncash1-2/+4
2019-03-16kernel/thread: Amend condition within UpdatePriority()Lioncash1-3/+3
2019-03-16kernel/thread: Maintain priority ordering of added mutex waiting threadsLioncash1-14/+24
2019-03-05kernel/thread: Remove obsolete TODO in Create()Lioncash1-2/+0
2019-02-16core_timing: Convert core timing into a classLioncash1-8/+11
2019-02-12core_timing: Rename CoreTiming namespace to Core::TimingLioncash1-6/+7
2018-12-28kernel/thread: Move process thread initialization into process.cppLioncash1-24/+0
2018-12-19Moved backtrace to ArmInterfaceDavid Marcec1-4/+0
2018-12-18kernel/thread: Set default fpcrMerryMage1-0/+3
2018-12-04svc: Implement SetThreadActivity (thread suspension)Luke Street1-1/+23
2018-12-03Moved backtrace to ArmInterfaceDavid Marcec1-14/+1
2018-12-03Print backtrace on svcBreakDavid Marcec1-0/+17
2018-11-22scheduler: Add explanations for YieldWith and WithoutLoadBalancingZach Hilman1-60/+0
2018-11-19svc: Implement yield types 0 and -1Zach Hilman1-0/+60
2018-11-14kernel/thread: Deduplicate scheduler switching codeLioncash1-37/+11
2018-10-30global: Use std::optional instead of boost::optional (#1578)Frederic L1-4/+4
2018-10-20kernel/process: Make the handle table per-processLioncash1-1/+1
2018-10-15core_cpu: Make Cpu scheduler instances unique_ptrs instead of shared_ptrsLioncash1-8/+8
2018-10-12thread: Remove unnecessary memset from ResetThreadContext()Lioncash1-4/+1
2018-10-10kernel/thread: Use a regular pointer for the owner/current processLioncash1-4/+4
2018-10-05thread: Make the scheduler pointer a regular pointerbalika0111-3/+3
2018-10-04kernel/thread: Make all instance variables privateLioncash1-4/+28
2018-09-30kernel/process: Make data member variables privateLioncash1-2/+2
2018-09-25memory: Dehardcode the use of fixed memory range constantsLioncash1-1/+2
2018-09-21thread/process: Move TLS slot marking/freeing to the process classLioncash1-56/+2
2018-09-21kernel/thread: Use owner_process when setting the page table in SetupMainThread()Lioncash1-3/+3
2018-09-18arm_interface: Remove ARM11-isms from the CPU interfaceLioncash1-2/+2
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi1-1/+1
2018-09-12kernel/errors: Correct error codes for invalid thread priority and invalid processor IDLioncash1-2/+2
2018-08-31core/core: Replace includes with forward declarations where applicableLioncash1-1/+2
2018-08-29kernel: Eliminate kernel global stateLioncash1-101/+18
2018-08-25core: Namespace all code in the arm subdirectory under the Core namespaceLioncash1-2/+2
2018-08-13Core::CoreTiming: add UnscheduleEventThreadsafeB3n301-1/+1
2018-08-13Kernel/Threads: Lock the HLE mutex when executing the wakeup callback.Subv1-0/+5
2018-08-13Kernel/Thread: Always use the threadsafe option when scheduling wakeups.Subv1-2/+4
2018-08-12Kernel/Mutex: Don't duplicate threads in the mutex waiter list.Subv1-0/+21
2018-08-04kernel/thread: Fix potential crashes introduced in 26de4bb521b1ace7af76eff4f6956cb23ac0d58cLioncash1-0/+11
2018-08-03core/memory: Get rid of 3DS leftoversLioncash1-31/+2
2018-08-02kernel/thread: Make GetFreeThreadLocalSlot()'s loop indices size_tLioncash1-8/+5
2018-08-02kernel/thread: Make GetFreeThreadLocalSlot() reference parameter a const referenceLioncash1-1/+2
2018-08-02kernel/thread: Make GetFreeThreadLocalSlot() internally linkedLioncash1-1/+1
2018-08-02kernel: Move object class to its own source filesLioncash1-1/+1
2018-07-31kernel: Remove unnecessary includesLioncash1-2/+4
2018-07-24core_timing: Split off utility functions into core_timing_utilMerryMage1-0/+1
2018-07-21CPU: Save and restore the TPIDR_EL0 system register on every context switch.Subv1-0/+1
2018-07-20thread: Convert ThreadStatus into an enum classLioncash1-24/+23
2018-07-19core/memory, core/hle/kernel: Use std::move where applicableLioncash1-1/+1
2018-07-19core: Don't construct instance of Core::System, just to access its live instanceLioncash1-6/+6
2018-07-03Update clang formatJames Rowe1-1/+1
2018-07-03Rename logging macro back to LOG_*James Rowe1-5/+5
2018-06-21Kernel/Arbiters: Implement WaitForAddressMichael Scire1-0/+6
2018-06-02Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may already have an assigned lock owner.Subv1-2/+5
2018-05-31Kernel/Thread: Corrected a typo that caused the affinity mask to never be changed.Subv1-2/+2
2018-05-30Kernel/Thread: Corrected a typo in an assert about the processor id.Subv1-1/+1
2018-05-11thread: Rename mask to affinity_masks.bunnei1-2/+2
2018-05-11thread: Support core change on ResumeFromWait and improve ChangeCore.bunnei1-37/+68
2018-05-11thread: Initialize ideal_core and mask members.bunnei1-0/+2
2018-05-11threading: Reschedule only on cores that are necessary.bunnei1-1/+1
2018-05-11thread: Implement ChangeCore function.bunnei1-1/+52
2018-05-11core: Implement multicore support.bunnei1-8/+8
2018-04-30core_timing: Namespace all functions and constants in core_timing's headerLioncash1-1/+2
2018-04-27general: Convert assertion macros over to be fmt-compatibleLioncash1-2/+2
2018-04-26kernel: Migrate logging macros to fmt-compatible onesLioncash1-7/+8
2018-04-23Kernel: Implemented mutex priority inheritance.Subv1-2/+39
2018-04-21Kernel: Remove unused ConditionVariable class.Subv1-9/+0
2018-04-21Kernel: Remove old and unused Mutex code.Subv1-3/+0
2018-04-21Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock.Subv1-1/+12
2018-03-31memory: Fix stack region.bunnei1-1/+1
2018-03-19thread: Add THREADSTATUS_WAIT_HLE_EVENT, remove THREADSTATUS_WAIT_ARB.bunnei1-18/+3
2018-03-16kernel: Move stack region outside of application heap.bunnei1-1/+1
2018-03-16MemoryState: Add additional memory states and improve naming.bunnei1-1/+1
2018-03-14core: Move process creation out of global state.bunnei1-2/+2
2018-02-27thread: Clear the process list on shutdown.Jules Blok1-1/+3
2018-02-18kernel: Use Scheduler class for threading.bunnei1-155/+14
2018-02-18kernel: Remove unused address_arbiter code.bunnei1-34/+0
2018-02-18 Kernel/IPC: Add a small delay after each SyncRequest to prevent thread starvation.Subv1-0/+1
2018-02-14thread: Silence formatting specifier warningsLioncash1-2/+3
2018-01-09Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback.Subv1-8/+17
2018-01-09CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)B3n301-3/+2
2018-01-03arm: Remove SkyEye/Dyncom code that is ARMv6-only.bunnei1-4/+2
2017-12-31thread: Keep track of the initially created handle.bunnei1-1/+2
2017-12-30thread: Main thread should set thread handle to reg 1.bunnei1-1/+4
2017-12-30thread: Remove THUMB mode flag.bunnei1-1/+1
2017-12-30thread: Main thread should be ready by default, all others dormant.bunnei1-4/+3
2017-12-29kernel: Various 64-bit fixes in memory/process/threadbunnei1-5/+5
2017-11-01hle: Use Switch formatted result codes.bunnei1-3/+2
2017-10-20hle: Fix QueryMemory response for MemoryInfo.bunnei1-1/+1
2017-10-10loader: Various improvements for NSO/NRO loaders.bunnei1-1/+1
2017-10-01Kernel/Thread: Added a helper function to get a thread's command buffer VAddr.Subv1-0/+6
2017-09-30kernel: Various threading fixes to support 64-bit addressing.bunnei1-3/+3
2017-09-30Fixed type conversion ambiguityHuw Pascoe1-9/+9
2017-09-28Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken.Subv1-3/+10
2017-09-27Kernel/Thread: Allow specifying which process a thread belongs to when creating it.Subv1-8/+9
2017-09-24memory: Add GetCurrentPageTable/SetCurrentPageTableMerryMage1-7/+4
2017-09-15Kernel/Threads: Don't clear the CPU instruction cache when performing a context switch from an idle thread into a thread in the same process.Subv1-1/+3
2017-09-10Kernel/Memory: Switch the current page table when a new process is scheduled.Subv1-0/+10
2017-08-22Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.Subv1-5/+1
2017-06-19ResultVal: Remove MoveFrom()Yuri Kunde Schlesner1-2/+2
2017-05-30Kernel: Move HandleTable to a separate fileYuri Kunde Schlesner1-0/+1
2017-05-25Kernel: Centralize error definitions in errors.hYuri Kunde Schlesner1-8/+16
2017-01-11Threads: Check the process' resource limit for the max allowed priority when creating a thread and remove the priority clamping code.Subv1-8/+2
2017-01-11Thread: Added priority range checking to svcSetThreadPriority and removed priority clamping code from Thread::SetPriority.Subv1-18/+2
2017-01-06Kernel: Don't attempt to yield execution in SleepThread(0) if there are no available threads to run.Subv1-0/+4
2017-01-05Kernel: Remove some unused functions.Subv1-23/+0
2017-01-05Kernel: Removed the priority boost code for starved threads.Subv1-27/+0
2017-01-05Kernel: Add some asserts to enforce the invariants in the scheduler.Subv1-2/+5
2017-01-05Kernel: Remove Thread::wait_objects_index and use wait_objects to hold all the objects that a thread is waiting on.Subv1-0/+5
2017-01-04Kernel: Use different thread statuses when a thread calls WaitSynchronization1 and WaitSynchronizationN with wait_all = true.Subv1-4/+7
2017-01-04Kernel/Mutex: Propagate thread priority changes to other threads inheriting the priority via mutexesSubv1-4/+17
2017-01-04Kernel/Mutex: Implemented priority inheritance.Subv1-3/+3
2017-01-04Kernel: Object ShouldWait and Acquire calls now take a thread as a parameter.Subv1-3/+3
2016-12-22ThreadContext: Move from "core" to "arm_interface".bunnei1-3/+3
2016-12-22core: Replace "AppCore" nomenclature with just "CPU".bunnei1-3/+3
2016-12-22core: Remove HLE module, consolidate code & various cleanups.bunnei1-4/+1
2016-12-22core: Consolidate core and system state, remove system module & cleanups.bunnei1-3/+3
2016-12-17Thread: remove the thread from the thread list when exitingwwylele1-2/+9
2016-12-10Properly remove a thread from its wait_objects' waitlist when it is awoken by a timeout.Subv1-0/+4
2016-12-04Threading: Reworked the way our scheduler works.Subv1-94/+3
2016-10-20Fix typosRicardo de Almeida Gonzaga1-1/+1
2016-09-22implement wait tree widgetwwylele1-0/+4
2016-09-21Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner1-1/+1
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-3/+1
2016-09-19Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner1-4/+2
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-49/+65
2016-09-15arm: ResetContext shouldn't be part of ARM_Interface.bunnei1-1/+17
2016-06-04Thread: update timeout when rerunning WaitSynchwwylele1-0/+49
2016-05-30Switch context on the same thread if necessarywwylele1-2/+6
2016-05-21Kernel/Thread: Remove use of Memory::GetPointerMerryMage1-1/+1
2016-05-17Set fpscr for new threadsJannik Vogel1-0/+2
2016-05-07Kernel/Threads: Dynamically allocate the TLS region for threads in the BASE region of the linear heap.Subv1-17/+67
2016-03-21hle: Get rid of global access to g_rescheduleLioncash1-1/+2
2015-12-28SVC: Fixed ArbitrateAddress to behave as it does on hardware.Subv1-1/+1
2015-12-01Kernel: Implement svcGetSystemInfoYuri Kunde Schlesner1-0/+3
2015-10-07Silence -Wsign-compare warnings.Rohit Nirmal1-1/+1
2015-08-16Kernel: Implement svcGetProcessInfo in a basic wayYuri Kunde Schlesner1-1/+3
2015-07-26dyncom: Rename armdefs.h to armstate.hLioncash1-1/+1
2015-07-21Kernel/Scheduling: Clean up a thread's wait_objects when its scheduled.Subv1-0/+8
2015-07-17Ensure all kernel objects are released during shutdownYuri Kunde Schlesner1-7/+14
2015-06-17kernel: Fix svcWaitSynch to always acquire requested wait objects.bunnei1-50/+26
2015-05-29Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot1-4/+4
2015-05-21Kernel: Move reschedules from SVCs to actual mechanisms that reschedule.bunnei1-0/+6
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner1-1/+1
2015-05-14thread: Fix a conditional check in RescheduleLioncash1-1/+1
2015-05-12Thread: Remove the idle threadYuri Kunde Schlesner1-27/+19
2015-05-12Core/Memory: Add TLS support for creating up to 300 threadsSubv1-6/+15
2015-05-12Core/Scheduling: Prepare the new priority in the thread queue when svcSetPriority is calledSubv1-0/+2
2015-05-11Core/HLE: Implemented the SVCs GetProcessId and GetProcessIdOfThreadSubv1-0/+2
2015-05-11Thread: Correctly set main thread initial stack positionYuri Kunde Schlesner1-2/+2
2015-05-11fixup! Set the TLS address in the schedulerSubv1-2/+5
2015-05-11Core/Memory: Give every emulated thread it's own TLS area.Subv1-1/+9
2015-05-09Memory: Re-organize and rename memory area address constantsYuri Kunde Schlesner1-2/+3
2015-05-07Common: Remove common.hYuri Kunde Schlesner1-1/+3
2015-05-02Kernel: Properly initialize and shutdown all modules.bunnei1-2/+8
2015-04-10Kernel: Implemented priority inheritance for mutexes.bunnei1-3/+7
2015-04-10Thread: Implement priority boost for starved threads.bunnei1-12/+36
2015-02-20Misc cleanup of common and related functionsarchshift1-2/+3
2015-02-11Asserts: break/crash program, fit to style guide; log.h->assert.harchshift1-8/+6
2015-02-10Scheduler refactor Pt. 1Kevin Hartman1-185/+175
2015-02-02Kernel: Stop creating useless Handles during object creationYuri Kunde Schlesner1-8/+0
2015-02-02Kernel: Make WaitObjects share ownership of Threads waiting on themYuri Kunde Schlesner1-0/+3
2015-02-02Explicitly instantiate constructors/destructors for Kernel objectsYuri Kunde Schlesner1-2/+2
2015-02-02Mutex: Replace g_mutex_held_locks with a set inside ThreadYuri Kunde Schlesner1-0/+3
2015-02-02Kernel: Introduce unique Object ids for debuggingYuri Kunde Schlesner1-5/+5
2015-02-02Kernel: Use separate Handle tables for CoreTiming userdataYuri Kunde Schlesner1-11/+11
2015-02-02Thread: Modernize two functions that slipped through previous rebasesYuri Kunde Schlesner1-5/+4
2015-02-01arm: Clean up ARMul_StateLioncash1-1/+1
2015-01-22Thread: Fix WaitSynchronization1 to not set register 1 on thread wakeup.bunnei1-15/+28
2015-01-22Thread: Use std::find in CheckWait_WaitObject.bunnei1-4/+5
2015-01-22Mutex: Cleanup and remove redundant code.bunnei1-1/+1
2015-01-22Kernel: Renamed some functions for clarity.bunnei1-1/+1
2015-01-22Kernel: Changed "ShouldWait" to return bool and "Acquire" to return void.bunnei1-7/+5
2015-01-22WaitObject: Renamed "Wait" to "ShouldWait", made "ShouldWait" and "Acquire" pure virtual.bunnei1-2/+2
2015-01-22Kernel: Moved Wait and Acquire to WaitObject, added way to retrieve a WaitObject safely.bunnei1-1/+1
2015-01-22AddressArbiter: Changed to Kernel::Object, big cleanup, removed code that made no sense.bunnei1-17/+25
2015-01-22Kernel: Get rid of WaitTypes and simplify lots of code, removing hacks.bunnei1-46/+19
2015-01-22WaitSynchronizationN: Refactor to fix several bugsbunnei1-33/+28
2015-01-22Kernel: Separate WaitSynchronization into Wait and Acquire methods.bunnei1-1/+5
2015-01-22WaitSynchronizationN: Implement return valuesbunnei1-19/+75
2015-01-22Thread: Keep track of multiple wait objects.bunnei1-11/+24
2015-01-22Kernel: Added WaitObject and changed "waitable" objects inherit from it.bunnei1-9/+2
2015-01-11Thread: Prevent waking a thread multiple times.Subv1-0/+3
2015-01-09Kernel: Start using boost::intrusive_ptr for lifetime managementYuri Kunde Schlesner1-33/+30
2015-01-09Thread: Fix nullptr access in a logging functionYuri Kunde Schlesner1-1/+2
2015-01-09Thread: Rename thread_queue => thread_listYuri Kunde Schlesner1-6/+6
2015-01-09Thread: Reduce use of Handles and move some funcs to inside the class.Yuri Kunde Schlesner1-213/+127
2015-01-09Kernel: Move Thread's definition to the header fileYuri Kunde Schlesner1-51/+9
2015-01-09Move ThreadContext to core/core.h and deal with the falloutYuri Kunde Schlesner1-4/+5
2015-01-09SVC: Fixed SleepThread.Subv1-8/+32
2015-01-08Threads: Use a dummy idle thread when no other are ready.Subv1-1/+22
2015-01-07Common: Clean up ThreadQueueListYuri Kunde Schlesner1-1/+1
2014-12-28Kernel: New handle managerYuri Kunde Schlesner1-1/+2
2014-12-28Kernel: Replace GetStaticHandleType by HANDLE_TYPE constantsYuri Kunde Schlesner1-2/+2
2014-12-28Rename ObjectPool to HandleTableYuri Kunde Schlesner1-11/+11
2014-12-21License changepurpasmart961-1/+1
2014-12-21Thread: Wait current thread on svc_SleepThreadbunnei1-20/+33
2014-12-20Kernel: Implement support for current thread pseudo-handleYuri Kunde Schlesner1-2/+1
2014-12-13Convert old logging calls to new logging macrosYuri Kunde Schlesner1-12/+12
2014-12-09Thread: Fixed to wait on address when in arbitration.bunnei1-10/+19
2014-12-07Mutex: Release all held mutexes when a thread exits.Subv1-0/+4
2014-12-04Threads: Remove a redundant function.Subv1-9/+1
2014-12-04Threads: Implemented a sequential thread idSubv1-3/+13
2014-12-04SVC: Implemented GetThreadId.Subv1-0/+16
2014-11-26Thread: Check that thread is actually in "wait state" when verifying wait.bunnei1-1/+1
2014-11-24Use pointers instead of passing handles around in some functions.Yuri Kunde Schlesner1-19/+15
2014-11-24Remove duplicated docs/update them for changed parameters.Yuri Kunde Schlesner1-5/+0
2014-11-24HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner1-21/+30
2014-11-19Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot1-19/+19
2014-11-19Add static to some variablesLioncash1-22/+22
2014-10-26Add `override` keyword through the code.Yuri Kunde Schlesner1-4/+4
2014-09-09core: Prune redundant includesarchshift1-3/+0
2014-08-31Threading: Fix thread starting to execute first instruction correctly.bunnei1-0/+5
2014-08-28Threading: Fix thread starting to execute first instruction correctly.bunnei1-0/+5
2014-08-18Core: Alter the kernel string functions to use std::string instead of const char*.Lioncash1-10/+7
2014-08-07Thread: Added more descriptive comment to WaitCurrentThread.bunnei1-1/+5
2014-07-09Thread: Added functions to resume threads from address arbitration.bunnei1-0/+37
2014-06-13Thread: Renamed occurrences of "t" to "thread" to improve readability.bunnei1-48/+45
2014-06-13Thread: Cleaned up VerifyWait, fixed issue where nullptr msg could unnecessarily be logged.bunnei1-9/+7
2014-06-13HLE: Removed usnused EatCycles function.bunnei1-9/+0
2014-06-13Thread: Moved position of * in arguments.bunnei1-2/+2
2014-06-13Thread: Updated VerifyWait to be more readable (but functionally the same).bunnei1-4/+3
2014-06-13HLE: Updated all uses of NULL to nullptr (to be C++11 compliant)bunnei1-7/+7
2014-06-13HLE: Updated various handle debug assertions to be more clear.bunnei1-2/+2
2014-06-13Kernel: Updated several member functions to be constbunnei1-3/+3
2014-06-13Thread: Fixed bug with ResetThread where cpu_registers[15] was being incorrectly setbunnei1-1/+1
2014-06-13Kernel: Made SyncRequest not pure virtual, with a default implementation of error (as this is not required for all kernel objects)bunnei1-10/+0
2014-06-13Kernel: Added real support for thread and event blockingbunnei1-33/+88
2014-06-02svc: added GetThreadPriority and SetThreadPriority, added (incomplete) DuplicateHandle supportbunnei1-0/+45
2014-06-02kernel: changed main thread priority to default, updated Kernel::Reschedule to use PrepareReschedulebunnei1-3/+3
2014-06-01thread: updated Reschedule to sit at a synchronization barrier when no other threads are ready for executionbunnei1-0/+18
2014-05-27kernel: added WaitSynchronization method to Kernel::Objectbunnei1-0/+11
2014-05-27kernel: updated SyncRequest to take boolean thread wait result as a parameterbunnei1-2/+6
2014-05-27kernel: add a SyncRequest method to KernelObject for use with svcSendSyncRequestbunnei1-0/+5
2014-05-23thread: renamed "WaitCurThread" to "WaitCurrentThread", removed unused "reason" argumentbunnei1-2/+2
2014-05-23thread: removed unused SwitchContext/Reschedule reason field, added missing arg parameter to SVC CreateThreadbunnei1-3/+3
2014-05-23kernel: refactored function naming to remove "__" prefixbunnei1-39/+39
2014-05-23thread: moved ThreadStatus/WaitType to header, added support for arg on CreateThread, added correct CPSR resetbunnei1-34/+15
2014-05-22thread: fixed bug where result of __NextThread was not being properly checked when NULLbunnei1-1/+1
2014-05-21thread: added correct lowest thread priority, added a thread priority check, and added some commentsbunnei1-0/+3
2014-05-21thread: exposed ResumeThreadFromWait function for use in other kernel modulesbunnei1-8/+8
2014-05-21thread: moved threading calls to the Kernel namespacebunnei1-89/+95
2014-05-21ARM_Interface: added SaveContext and LoadContext functions for HLE thread switchingbunnei1-36/+2
2014-05-21renamed "syscall" module to "svc" (more accurate naming)bunnei1-1/+1
2014-05-21thread: whitespace change - fixed * and & placementbunnei1-25/+25
2014-05-21- created a Kernel namespacebunnei1-9/+9
2014-05-19- moved Handle/Result definitions to kernel.hbunnei1-2/+0
2014-05-17changed a commentbunnei1-1/+1
2014-05-17- added enum ThreadProcessorIdbunnei1-51/+90
2014-05-17- replaced KERNELOBJECT_MAX_NAME_LENGTH with KERNEL_MAX_NAME_LENGTHbunnei1-4/+5
2014-05-16completely gutted/refactored threading code to be simplerbunnei1-616/+228
2014-05-15- added helper function for __KernelCreateThreadbunnei1-4/+70
2014-05-14fixed thread reset to not set stack addressbunnei1-1/+1
2014-05-14various cleanups / remove unused codebunnei1-65/+28
2014-05-14added a bunch of threading code, recycled from PPSSPP, with lots of hacks in for 3DS... doesn't really do much yet. Just a jumping off pointbunnei1-64/+524
2014-05-10added initial kernel/thread modulesbunnei1-0/+228