Commit Graph

70 Commits

Author SHA1 Message Date
Liam cf0b407daa kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
Liam 3c93638acf kernel: convert KPort, KSession 2023-03-12 22:06:53 -04:00
Liam 1484a6536d kernel: clone fpu status on CreateThread 2023-03-07 19:18:06 -05:00
Liam 63414faea4 kernel: be more careful about kernel address keys 2023-03-01 10:42:45 -05:00
Liam f4e795193b kernel: refactor priority inheritance to represent locks as C++ objects 2023-03-01 10:42:45 -05:00
Liam 1c3a93e7c4 service: refactor server architecture
Converts services to have their own processes
2023-02-21 12:19:25 -05:00
Liam 832e1e2ca4 kernel: use GetCurrentProcess 2023-02-13 11:05:14 -05:00
Levi Behunin 2ff6c44168 Move to Clang Format 15
Depends on https://github.com/yuzu-emu/build-environments/pull/69

clang-15 primary run
2023-01-29 17:49:42 -07:00
Liam b85a155abd kernel: split SetAddressKey into user and kernel variants 2023-01-23 20:31:03 -05:00
Liam 31945a6e8b kernel: fix incorrect locking order in suspension 2023-01-23 17:14:41 -05:00
Liam 8df44232e8 kernel: remove TimeManager 2022-12-18 20:21:24 -05:00
Liam 49d1cf6477 kernel: add KHardwareTimer 2022-12-18 16:37:19 -05:00
Lioncash 6fea145402 kernel/thread: Ensure stack_top and argument are always initialized 2022-12-05 15:19:36 -05:00
Liam c835c254a3 service_thread: register service threads to the logical owner process 2022-11-04 09:18:57 -04:00
Liam 3980952ab8 kernel: refactor dummy thread wakeups 2022-10-24 19:52:01 -04:00
bunnei 97e4cd1c8f core: hle: kernel: k_thread: Implement thread termination DPC. 2022-10-18 19:13:34 -07:00
Liam 21e2063d7d kernel: fix single-core preemption points 2022-07-14 22:47:18 -04:00
Liam 61b26b386d kernel: fix issues with single core mode 2022-07-14 22:47:18 -04:00
Liam e47bced65d kernel: use KScheduler from mesosphere 2022-07-14 22:47:18 -04:00
Liam e551960935 common/fiber: make fibers easier to use 2022-07-02 12:33:49 -04:00
german77 c7890ebccc core: Replace all instances of ResultCode with Result 2022-06-26 20:21:37 -05:00
Liam 83f1ecb73b kernel: make current thread pointer thread local 2022-06-23 00:28:00 -04:00
Liam 808ad9eb9f kernel: wait for threads to stop on pause 2022-06-18 16:54:33 -04:00
Liam b3dce90004 core/debugger: Support reading guest thread names 2022-06-01 21:25:32 -04:00
Liam da50e98e3a core/debugger: Improved stepping mechanism and misc fixes 2022-06-01 02:15:15 -04:00
Morph 2b87305d31 general: Convert source file copyright comments over to SPDX
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
bunnei 03f8a16869 core: hle: kernel: k_thread: Rework dummy thread waiting. 2022-04-11 21:15:38 -07:00
bunnei e1b3368c18 hle: kernel: Use std::mutex instead of spin locks for most kernel locking. 2022-04-11 21:13:40 -07:00
lat9nq 831f022536 k_thread: Fix data race
TSan reports a data race between writing at cpp:1162 and reading at
h:262. Make the thread_state atomic to prevent this.
2022-04-03 21:47:58 -04:00
bunnei c5516b1800 core: hle: kernel: k_thread: Update to reflect tree changes. 2022-03-14 18:14:53 -07:00
bunnei b3f8d2491d hle: kernel: KThread: Ensure host (dummy) threads block on locking.
- But do not enter the priority queue, as otherwise they will be scheduled.
- Allows dummy threads to use guest synchronization primitives.
2022-01-21 17:12:06 -08:00
bunnei 668af26696 hle: kernel: KThread: Decrease DummyThread priority to ensure it is never scheduled. 2022-01-20 17:08:00 -08:00
bunnei cc4cbff1ca hle: kernel: KThread: Rename thread_type_for_debugging -> thread_type.
- This will be used to ensure that we do not schedule dummy threads.
2022-01-20 17:08:00 -08:00
bunnei b52516263d core: hle: kernel: KThread: Integrate with KWorkerTask and implement DoWorkerTaskImpl.
- This is used to terminate a thread asynchronously after it has been exited.
- This fixes a crash that can occur in Pokemon Sword/Shield because a thread is incorrectly closed on svcExitThread, then, the thread is destroyed on svcCloseHandle while it is still scheduled.
- Instead, we now wait for the thread to no longer be scheduled on all cores before destroying it from KWorkerTaskManager, which is accurate to HOS behavior.
2022-01-14 16:44:14 -08:00
bunnei 914431487b core: hle: kernel: KThread: Replace Suspend with UpdateState & various updates.
- This makes our implementations of these more closely match HOS.
2022-01-14 16:44:14 -08:00
bunnei b12695ddc4 core: hle: kernel: Implement thread pinning.
- We largely had the mechanics in place for thread pinning, this change hooks these up.
- Validated with tests https://github.com/Atmosphere-NX/Atmosphere/blob/master/tests/TestSvc/source/test_thread_pinning.cpp.
2021-12-30 15:50:45 -08:00
bunnei 6d2bf18df9 hle: kernel: k_thread: Rename sleeping_queue -> wait_queue. 2021-12-06 16:39:18 -08:00
bunnei 826b07162a hle: kernel: k_thread: Treat dummy threads as a special type. 2021-12-06 16:39:18 -08:00
bunnei 58da4d5a6e hle: kernel: Add a flag for indicating that the kernel is currently shutting down. 2021-12-06 16:39:17 -08:00
bunnei eb34276885 hle: kernel: Cleanup to match coding style. 2021-12-06 16:39:17 -08:00
bunnei 778f03c57a hle: kernel: KThread: Migrate to updated KThreadQueue (part 1). 2021-12-06 16:39:17 -08:00
bunnei 0ad0543cde hle: kernel: KThread: Remove tracking of sync object from threads. 2021-12-06 16:39:17 -08:00
bunnei e9cdb3cccb hle: kernel: Update KThreadQueue and migrate KSynchronizationObject. 2021-12-06 16:39:17 -08:00
bunnei 01b0e5b168 core: hle: kernel: Disable dispatch count tracking on single core.
- This would have limited value, and would be a mess to handle properly.
2021-12-06 16:39:17 -08:00
bunnei a3dd417cbf core: hle: kernel: k_thread: Mark KScopedDisableDispatch as nodiscard. 2021-12-06 16:39:17 -08:00
bunnei 4bd80abd17 core: hle: kernel: k_thread: Add KScopedDisableDispatch. 2021-12-06 16:39:16 -08:00
bunnei 5e600cba3a Revert "kernel: Various improvements to scheduler" 2021-08-25 20:59:28 -07:00
bunnei b2f859f47c core: hle: kernel: Disable dispatch count tracking on single core.
- This would have limited value, and would be a mess to handle properly.
2021-08-14 02:14:19 -07:00
bunnei 8d8a230257 core: hle: kernel: k_thread: Mark KScopedDisableDispatch as nodiscard. 2021-08-07 12:33:31 -07:00
bunnei 9951f24bad core: hle: kernel: k_thread: Add KScopedDisableDispatch. 2021-08-07 12:18:47 -07:00