543e212554
hle: kernel: KLightLock: Fix several bugs.
2021-01-28 21:53:21 -08:00
e24c6dab93
hle: kernel: KThread: Release thread resource on thread exit.
2021-01-28 21:49:47 -08:00
10738839ad
yuzu: debugger: Ignore HLE threads.
2021-01-28 21:42:27 -08:00
3856564727
hle: kernel: process: Add state lock.
2021-01-28 21:42:26 -08:00
ff46ef7ea3
hle: kernel: threading: Fix bug with host thread naming.
2021-01-28 21:42:26 -08:00
6ee8340a6b
hle: kernel: k_scheduler_lock: Cleanup.
2021-01-28 21:42:26 -08:00
6e953f7f02
hle: kernel: Allocate a dummy KThread for each host thread, and use it for scheduling.
2021-01-28 21:42:26 -08:00
37f74d8741
hle: kernel: k_scheduler: Use atomics for current_thread, etc.
2021-01-28 21:42:26 -08:00
f6b10fad63
hle: kernel: k_scheduler: Fix for single core mode.
2021-01-28 21:42:26 -08:00
0a1449e04b
kernel: Fix build errors.
2021-01-28 21:42:26 -08:00
ca78f77827
hle: kernel: KScheduler: Introduce thread context_guard.
2021-01-28 21:42:26 -08:00
cdd14b03e5
hle: kernel: Recode implementation of KThread to be more accurate.
2021-01-28 21:42:26 -08:00
1470338458
kernel: svc_types: Add ThreadActivity.
2021-01-28 21:42:26 -08:00
1772ebeb1e
kernel: KSchedulerPriorityQueue: Lowest priority should be LowestThreadPriority.
2021-01-28 21:42:26 -08:00
1f99f5473c
kernel: k_light_lock: Simplify EmuThreadHandle implementation.
2021-01-28 21:42:26 -08:00
c0f5830323
hle: kernel: TimeManager: Simplify to not rely on previous EmuThreadHandle implementation.
2021-01-28 21:42:26 -08:00
ff186b2498
core: hle: kernel: object: Implement Finalize() virtual method.
2021-01-28 21:42:26 -08:00
33b4930280
core: hle: kernel: svc_results: Populate with several missing error codes.
2021-01-28 21:42:26 -08:00
5a4fc4a529
core: hle: kernel: Implement KLightLock.
2021-01-28 21:42:26 -08:00
97129bc742
core: hle: kernel: Implement KThreadQueue.
2021-01-28 21:42:25 -08:00
4dbf3f4880
hle: kernel: KThread: Clean up thread priorities.
2021-01-28 21:42:25 -08:00
1e55498110
hle: kernel: KThread: Reorganize thread priority defaults.
2021-01-28 21:42:25 -08:00
0530292b97
hle: kernel: KThread: Fix ThreadType definition.
2021-01-28 21:42:25 -08:00
4782985013
hle: kernel: Move single core "phantom mode" out of KThread.
...
- This is a workaround that does not belong in a kernel primitive.
2021-01-28 21:42:25 -08:00
eea346ba8e
hle: kernel: KThread: Remove thread types that do not exist.
2021-01-28 21:42:25 -08:00
c0d3aef28c
core: hle: kernel: Rename Thread to KThread.
2021-01-28 21:42:25 -08:00
008afa5d59
hle_ipc: Add Can(Read, Write)Buffer
...
Allows us to test whether a buffer can be read from or written to memory
2021-01-28 01:32:24 -05:00
8620de6b20
common/bit_util: Replace CLZ/CTZ operations with standardized ones
...
Makes for less code that we need to maintain.
2021-01-15 02:15:32 -05:00
03dfc8d8e7
hle: kernel: thread: Preserve thread wait reason for debugging only.
...
- This is decoupled from core functionality and used for debugging only.
2021-01-11 14:23:17 -08:00
6b2f653143
hle: kernel: k_scheduler_lock: Fix shadowing errors.
2021-01-11 14:23:16 -08:00
912dd50146
core: hle: Integrate new KConditionVariable and KAddressArbiter implementations.
2021-01-11 14:23:16 -08:00
952d1ac487
core: hle: kernel: Update KAddressArbiter.
2021-01-11 14:23:16 -08:00
b4e6d6c385
core: hle: kernel: Update KConditionVariable.
2021-01-11 14:23:16 -08:00
1212fa60b6
core: hle: kernel: Begin moving common SVC defintions to its own header.
2021-01-11 14:23:16 -08:00
8a155c4058
hle: kernel: Remove unnecessary AddressArbiter definition.
2021-01-11 14:23:16 -08:00
f12701b303
hle: kernel: k_scheduler: Cleanup OnThreadPriorityChanged.
2021-01-11 14:23:16 -08:00
d1309fb275
hle: kernel: Rename thread "status" to "state".
2021-01-11 14:23:16 -08:00
c3c43e32fc
hle: kernel: thread: Replace ThreadStatus/ThreadSchedStatus with a single ThreadState.
...
- This is how the real kernel works, and is more accurate and simpler.
2021-01-11 14:23:16 -08:00
7420a717e6
core: hle: kernel: Add some useful functions for checking kernel addresses.
2021-01-11 14:23:16 -08:00
4bbf173fc1
core: hle: kernel: svc_types: Add type definitions for KAddressArbiter.
2021-01-11 14:23:16 -08:00
35c3c078e3
core: hle: kernel: Update KSynchronizationObject.
2021-01-11 14:23:16 -08:00
1ae883435d
core: hle: kernel: Begin moving common SVC results to its own header.
2021-01-11 14:23:16 -08:00
4f13e270c8
core: Silence warnings when compiling without asserts
2021-01-05 04:18:16 -03:00
a745d87971
general: Fix various spelling errors
2021-01-02 10:23:41 -05:00
eb318ffffc
Merge pull request #5249 from ReinUsesLisp/lock-free-pages
...
core/memory: Read and write page table atomically
2021-01-01 02:54:01 -08:00
25d607f5f6
Merge pull request #5208 from bunnei/service-threads
...
Service threads
2020-12-30 22:06:05 -08:00
b3587102d1
core/memory: Read and write page table atomically
...
Squash attributes into the pointer's integer, making them an uintptr_t
pair containing 2 bits at the bottom and then the pointer. These bits
are currently unused thanks to alignment requirements.
Configure Dynarmic to mask out these bits on pointer reads.
While we are at it, remove some unused attributes carried over from
Citra.
Read/Write and other hot functions use a two step unpacking process that
is less readable to stop MSVC from emitting an extra AND instruction in
the hot path:
mov rdi,rcx
shr rdx,0Ch
mov r8,qword ptr [rax+8]
mov rax,qword ptr [r8+rdx*8]
mov rdx,rax
-and al,3
and rdx,0FFFFFFFFFFFFFFFCh
je Core::Memory::Memory::Impl::Read<unsigned char>
mov rax,qword ptr [vaddr]
movzx eax,byte ptr [rdx+rax]
2020-12-29 21:54:49 -03:00
85cfd96f62
Merge pull request #5247 from comex/xx-concepts
...
k_priority_queue: Fix concepts use
2020-12-29 16:50:20 -08:00
82e0eeed21
hle: kernel: service_thread: Make thread naming more consistent.
2020-12-29 16:46:29 -08:00
a2a0f5318d
hle: kernel: Manage service threads on another thread.
...
- This is to allow service threads to defer destruction of themselves.
2020-12-29 16:46:29 -08:00