fb49ec19c1
kernel: use KTypedAddress for addresses
2023-03-22 09:35:16 -04:00
c352381ce9
kernel: additional style fixes to KThread, KProcess
2023-03-12 22:10:27 -04:00
6bfb4c8f71
kernel: convert KThread to new style
2023-03-12 22:09:09 -04:00
ac6cbb7134
kernel: prefer std::addressof
2023-03-12 22:09:09 -04:00
c0b9e93b77
kernel: remove kernel_
2023-03-12 22:09:09 -04:00
92c89312fc
Merge pull request #9923 from liamwhite/kht
...
kernel: add timer pointer to KThreadQueue
2023-03-10 16:19:41 -05:00
1776448df2
kernel: add timer pointer to KThreadQueue
2023-03-07 20:51:29 -05:00
484641003c
kernel: clone fpu status on CreateThread
2023-03-07 19:18:06 -05:00
97f7f7bad5
kernel: be more careful about kernel address keys
2023-03-01 10:42:45 -05:00
c4ba088a5d
kernel: refactor priority inheritance to represent locks as C++ objects
2023-03-01 10:42:45 -05:00
a936972614
service: refactor server architecture
...
Converts services to have their own processes
2023-02-21 12:19:25 -05:00
4363ca304a
kernel: use GetCurrentProcess
2023-02-13 11:05:14 -05:00
693cad8e9b
kernel: split SetAddressKey into user and kernel variants
2023-01-23 20:31:03 -05:00
5086380a63
kernel: fix incorrect locking order in suspension
2023-01-23 17:14:41 -05:00
4eece4d35d
kernel/svc_types: refresh
2022-11-09 19:05:08 -05:00
e6fe40428c
service_thread: register service threads to the logical owner process
2022-11-04 09:18:57 -04:00
eec3184bb0
k_thread: fix single core
2022-10-30 18:44:29 -04:00
1a378a7769
kernel: refactor dummy thread wakeups
2022-10-24 19:52:01 -04:00
829e82e264
core: hle: kernel: Use result macros for new/changed code.
2022-10-18 19:13:35 -07:00
57a77e9ff4
core: hle: kernel: k_thread: Implement thread termination DPC.
2022-10-18 19:13:34 -07:00
a9a83fa726
kernel: Ensure all uses of disable_count are balanced
2022-07-14 22:47:18 -04:00
77137583cd
kernel: be more careful about initialization path for HLE threads
2022-07-14 22:47:18 -04:00
da07e13e07
kernel: fix single-core preemption points
2022-07-14 22:47:18 -04:00
21945ae127
kernel: fix issues with single core mode
2022-07-14 22:47:18 -04:00
0624c880bd
kernel: use KScheduler from mesosphere
2022-07-14 22:47:18 -04:00
1611c53c12
kernel: fix usage of waiter_list in Finalize
2022-07-09 18:54:54 -04:00
7e75593c20
Merge pull request #8502 from liamwhite/end-wait
...
kernel: clean up waiting implementation
2022-07-07 17:31:49 -04:00
ed0319cfed
common/fiber: make fibers easier to use
2022-07-02 12:33:49 -04:00
a7d9be1384
core: Replace all instances of ResultCode with Result
2022-06-26 20:21:37 -05:00
075155022e
kernel: clean up waiting implementation
2022-06-25 13:36:14 -04:00
2c56e94702
kernel: make current thread pointer thread local
2022-06-23 00:28:00 -04:00
9da4e62573
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
24d7aaf43c
kernel: wait for threads to stop on pause
2022-06-18 16:54:33 -04:00
744a208763
kernel: fix some uses of disable_count
2022-06-15 20:53:49 -04:00
888f499188
kernel: implement KProcess suspension
2022-06-14 10:04:11 -04:00
084d7d6b01
common: Change semantics of UNREACHABLE to unconditionally crash
2022-06-13 20:09:00 -04:00
07922abffc
core/debugger: Support reading guest thread names
2022-06-01 21:25:32 -04:00
99ceb03a1c
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
3f0b93925f
core: hle: kernel: k_thread: Rework dummy thread waiting.
2022-04-11 21:15:38 -07:00
6bcbbb29e7
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
ade596121b
core: Reduce unused includes
2022-03-19 02:23:32 -04:00
813b2ef253
core: hle: kernel: k_process: Implement thread local storage accurately.
2022-03-14 18:14:54 -07:00
4a28d8cebb
core: hle: kernel: k_thread: Ensure host Fiber is freed.
2022-03-14 18:14:53 -07:00
59add00d4a
hle: kernel: KThread: Improve Increment/Decrement RunningThreadCount.
...
- Previously implementation was incorrect, and would occasionally underflow.
2022-01-22 21:09:45 -08:00
615fb40416
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
91ff6d4cb3
hle: kernel: KThread: DummyThread can be waited, ensure wait_queue is not nullptr.
2022-01-20 17:08:00 -08:00
46a620f9d7
hle: kernel: KThread: Decrease DummyThread priority to ensure it is never scheduled.
2022-01-20 17:08:00 -08:00
5ffec69dc7
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
f6cbb14dce
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
f499c8177e
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