Commit graph

95 commits

Author SHA1 Message Date
Liam
156516e399 kernel: use KTypedAddress for addresses 2023-03-22 09:35:16 -04:00
Liam
9d5747fb71 kernel: additional style fixes to KThread, KProcess 2023-03-12 22:10:27 -04:00
Liam
46d09ae364 kernel: convert KThread to new style 2023-03-12 22:09:09 -04:00
Liam
d0e11c27d9 kernel: prefer std::addressof 2023-03-12 22:09:09 -04:00
Liam
cf0b407daa kernel: remove kernel_ 2023-03-12 22:09:09 -04:00
liamwhite
e70d580897 Merge pull request #9923 from liamwhite/kht
kernel: add timer pointer to KThreadQueue
2023-03-10 16:19:41 -05:00
Liam
46a6277709 kernel: add timer pointer to KThreadQueue 2023-03-07 20:51:29 -05: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
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
affd5c32f9 kernel/svc_types: refresh 2022-11-09 19:05:08 -05:00
Liam
c835c254a3 service_thread: register service threads to the logical owner process 2022-11-04 09:18:57 -04:00
Liam
e9589c859d k_thread: fix single core 2022-10-30 18:44:29 -04:00
Liam
3980952ab8 kernel: refactor dummy thread wakeups 2022-10-24 19:52:01 -04:00
bunnei
4c2274b2c1 core: hle: kernel: Use result macros for new/changed code. 2022-10-18 19:13:35 -07:00
bunnei
97e4cd1c8f core: hle: kernel: k_thread: Implement thread termination DPC. 2022-10-18 19:13:34 -07:00
Liam
dbb1312876 kernel: Ensure all uses of disable_count are balanced 2022-07-14 22:47:18 -04:00
Liam
e2be660909 kernel: be more careful about initialization path for HLE threads 2022-07-14 22:47:18 -04: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
12948cf615 kernel: fix usage of waiter_list in Finalize 2022-07-09 18:54:54 -04:00
liamwhite
79d631b630 Merge pull request #8502 from liamwhite/end-wait
kernel: clean up waiting implementation
2022-07-07 17:31:49 -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
f70a3ada00 kernel: clean up waiting implementation 2022-06-25 13:36:14 -04:00
Liam
83f1ecb73b kernel: make current thread pointer thread local 2022-06-23 00:28:00 -04:00
bunnei
3f3f5aa93b Merge pull request #8483 from liamwhite/fire-emblem-three-semaphores
kernel: wait for threads to stop on pause
2022-06-22 14:46:33 -07:00
Liam
808ad9eb9f kernel: wait for threads to stop on pause 2022-06-18 16:54:33 -04:00
Liam
6d5cc6b2a2 kernel: fix some uses of disable_count 2022-06-15 20:53:49 -04:00
Liam
59a6d88625 kernel: implement KProcess suspension 2022-06-14 10:04:11 -04:00
Liam
c1771c98f3 common: Change semantics of UNREACHABLE to unconditionally crash 2022-06-13 20:09:00 -04:00
Liam
b3dce90004 core/debugger: Support reading guest thread names 2022-06-01 21:25:32 -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
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
ameerj
22e01068e1 core: Reduce unused includes 2022-03-19 02:23:32 -04:00
bunnei
2b881f4ccc core: hle: kernel: k_process: Implement thread local storage accurately. 2022-03-14 18:14:54 -07:00
bunnei
84ced13966 core: hle: kernel: k_thread: Ensure host Fiber is freed. 2022-03-14 18:14:53 -07:00
bunnei
a2731424a6 hle: kernel: KThread: Improve Increment/Decrement RunningThreadCount.
- Previously implementation was incorrect, and would occasionally underflow.
2022-01-22 21:09:45 -08: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
f2e870d6b6 hle: kernel: KThread: DummyThread can be waited, ensure wait_queue is not nullptr. 2022-01-20 17:08:00 -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
247a7e2205 hle: kernel: KThread: Ensure dummy threads never call EndWait.
- These are only used by host threads for locking and will never have a wait_queue.
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