Liam
af42482565
kernel: add and enable system suspend type
2 years ago
Liam
419055e484
kernel: instantiate memory separately for each guest process
2 years ago
Liam
9268f265a1
kernel: implement light IPC
2 years ago
Liam
45c87c7e6e
core: refactor emulated cpu core activation
2 years ago
Liam
9f91ba1f73
arm: Implement native code execution backend
2 years ago
Liam
8c59543ee3
kernel: update KProcess
2 years ago
Morph
b94e576653
kernel: Synchronize
3 years ago
Kelebek1
5da70f7197
Remove memory allocations in some hot paths
3 years ago
lat9nq
e34e1b1c95
k_thread: Use a mutex and cond_var to sync bool
std::atomic<bool> is broken on MinGW and causes deadlocks there.
Use a normal cond var in its stead.
3 years ago
Liam
b143ce8134
kernel: remove general boost lists
3 years ago
Liam
41d99aa89d
memory: rename global memory references to application memory
3 years ago
Liam
fb49ec19c1
kernel: use KTypedAddress for addresses
3 years ago
Liam
6bfb4c8f71
kernel: convert KThread to new style
3 years ago
Liam
c0b9e93b77
kernel: remove kernel_
3 years ago
Liam
097c25b164
kernel: convert KPort, KSession
3 years ago
Liam
484641003c
kernel: clone fpu status on CreateThread
3 years ago
Liam
97f7f7bad5
kernel: be more careful about kernel address keys
3 years ago
Liam
c4ba088a5d
kernel: refactor priority inheritance to represent locks as C++ objects
3 years ago
Liam
a936972614
service: refactor server architecture
Converts services to have their own processes
3 years ago
Liam
4363ca304a
kernel: use GetCurrentProcess
3 years ago
Levi Behunin
d5fc56db4b
Move to Clang Format 15
Depends on https://github.com/yuzu-emu/build-environments/pull/69
clang-15 primary run
3 years ago
Liam
693cad8e9b
kernel: split SetAddressKey into user and kernel variants
3 years ago
Liam
5086380a63
kernel: fix incorrect locking order in suspension
3 years ago
Liam
c770f25ccb
kernel: remove TimeManager
3 years ago
Liam
67c0d714c5
kernel: add KHardwareTimer
3 years ago
Lioncash
dddc9bb8f1
kernel/thread: Ensure stack_top and argument are always initialized
3 years ago
Liam
e6fe40428c
service_thread: register service threads to the logical owner process
3 years ago
Liam
1a378a7769
kernel: refactor dummy thread wakeups
3 years ago
bunnei
57a77e9ff4
core: hle: kernel: k_thread: Implement thread termination DPC.
3 years ago
Liam
da07e13e07
kernel: fix single-core preemption points
4 years ago
Liam
21945ae127
kernel: fix issues with single core mode
4 years ago
Liam
0624c880bd
kernel: use KScheduler from mesosphere
4 years ago
Liam
ed0319cfed
common/fiber: make fibers easier to use
4 years ago
german77
a7d9be1384
core: Replace all instances of ResultCode with Result
4 years ago
Liam
2c56e94702
kernel: make current thread pointer thread local
4 years ago
Liam
24d7aaf43c
kernel: wait for threads to stop on pause
4 years ago
Liam
07922abffc
core/debugger: Support reading guest thread names
4 years ago
Liam
989d4a7a41
core/debugger: Improved stepping mechanism and misc fixes
4 years ago
Morph
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.
4 years ago
bunnei
3f0b93925f
core: hle: kernel: k_thread: Rework dummy thread waiting.
4 years ago
bunnei
8deaac8bd1
hle: kernel: Use std::mutex instead of spin locks for most kernel locking.
4 years ago
lat9nq
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.
4 years ago
bunnei
25c0acc388
core: hle: kernel: k_thread: Update to reflect tree changes.
4 years ago
bunnei
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.
4 years ago
bunnei
46a620f9d7
hle: kernel: KThread: Decrease DummyThread priority to ensure it is never scheduled.
4 years ago
bunnei
f6cbb14dce
hle: kernel: KThread: Rename thread_type_for_debugging -> thread_type.
- This will be used to ensure that we do not schedule dummy threads.
4 years ago
bunnei
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.
4 years ago
bunnei
03884b7ea6
core: hle: kernel: KThread: Replace Suspend with UpdateState & various updates.
- This makes our implementations of these more closely match HOS.
4 years ago
bunnei
3a89723d97
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 .
4 years ago
bunnei
42697527ba
hle: kernel: k_thread: Rename sleeping_queue -> wait_queue.
4 years ago