aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2021-01-05core: Silence warnings when compiling without assertsReinUsesLisp
2021-01-02general: Fix various spelling errorsMorph
2021-01-01Merge pull request #5249 from ReinUsesLisp/lock-free-pagesbunnei
core/memory: Read and write page table atomically
2020-12-30Merge pull request #5208 from bunnei/service-threadsbunnei
Service threads
2020-12-29core/memory: Read and write page table atomicallyReinUsesLisp
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-29Merge pull request #5247 from comex/xx-conceptsbunnei
k_priority_queue: Fix concepts use
2020-12-29hle: kernel: service_thread: Make thread naming more consistent.bunnei
2020-12-29hle: kernel: Manage service threads on another thread.bunnei
- This is to allow service threads to defer destruction of themselves.
2020-12-29Merge pull request #5246 from comex/xx-includebunnei
Add missing include of "core/hle/kernel/kernel.h"
2020-12-29hle: kernel: Manage host thread IDs using TLS.bunnei
- Avoids the need to have a large map of host to guest thread IDs.
2020-12-29k_priority_queue: Fix concepts usecomex
- For `std::same_as`, add missing include of `<concepts>`. - For `std::convertible_to`, create a replacement in `common/concepts.h` and use that instead. This would also be found in `<concepts>`, but unlike `std::same_as`, `std::convertible_to` is not yet implemented in libc++, LLVM's STL implementation - not even in master. (In fact, `std::same_as` is the *only* concept currently implemented. For some reason.)
2020-12-29Add missing include of "core/hle/kernel/kernel.h"comex
This is needed as the header invokes methods on KernelCore.
2020-12-29svc: demote SleepThread log to LOG_TRACEameerj
This log is called often, and introduces a lot of noise when debug logging is enabled, making it difficult to see other debug logs.
2020-12-29hle: kernel: Move ServiceThread ownership to KernelCore.bunnei
- Fixes a circular dependency which prevented threads from being released on shutdown.
2020-12-29hle: kernel: service_thread: Add thread name and take weak_ptr of ServerSession.bunnei
2020-12-28core: hle: kernel: Clear process list on boot.bunnei
2020-12-28core: kernel: Clear process list earlier.bunnei
2020-12-28hle: kernel: hle_ipc: Remove SleepClientThread.bunnei
- This was kind of hacky, and no longer is necessary with service threads.
2020-12-28hle: kernel: service_thread: Add parameter for thread pool size.bunnei
2020-12-28core: hle: server_session: Use separate threads for each service connection.bunnei
2020-12-20Merge pull request #5131 from bunnei/scheduler-rewritebunnei
Rewrite Kernel scheduler based on Atmosphere
2020-12-11Merge pull request #5172 from lioncash/svc-widebunnei
svc: Remove unnecessary casts
2020-12-08svc: Remove unnecessary castsLioncash
Simplifies and removes some casts. In all cases, these were generally widening from a 32-bit unsigned type to a 64-bit unsigned type, so no information would be lost from the conversion.
2020-12-07core: Remove unnecessary enum casts in log callsLioncash
Follows the video core PR. fmt doesn't require casts for enum classes anymore, so we can remove quite a few casts.
2020-12-06Merge pull request #5148 from comex/xx-unused-fieldsbunnei
core: Mark unused fields as [[maybe_unused]]
2020-12-07Merge pull request #5136 from lioncash/video-shadow3LC
video_core: Resolve more variable shadowing scenarios pt.3
2020-12-06Fix "explicitly defaulted but implicitly deleted" warningcomex
`PhysicalCore`'s move assignment operator was declared as `= default`, but was implicitly deleted because `PhysicalCore` has fields of reference type. Switch to explicitly deleting it to avoid a Clang warning. The move *constructor* is still defaulted, and is required to exist due to the use of `std::vector<PhysicalCore>`.
2020-12-06core: Mark unused fields as [[maybe_unused]]comex
2020-12-06hle: kernel: Process: Various style fixes based on code review feedback.bunnei
2020-12-06hle: kernel: Thread: Various style fixes based on code review feedback.bunnei
2020-12-06hle: kernel: KScopedSchedulerLockAndSleep: Various style fixes based on code ↵bunnei
review feedback.
2020-12-06hle: kernel: KScopedLock: Various style fixes based on code review feedback.bunnei
2020-12-06hle: kernel: KAbstractSchedulerLock: Various style fixes based on code ↵bunnei
review feedback.
2020-12-06hle: kernel: KScheduler: Various style fixes based on code review feedback.bunnei
2020-12-06hle: kernel: KPriorityQueue: Various style fixes based on code review feedback.bunnei
2020-12-06hle: kernel: KAffinityMask: Various style fixes based on code review feedback.bunnei
2020-12-06hle: kernel: GlobalSchedulerContext: Various style fixes based on code ↵bunnei
review feedback.
2020-12-06hle: kernel: Use C++ style comments in KScheduler, etc.bunnei
2020-12-06kernel: KScopedSchedulerLockAndSleep: Remove unused ctor.bunnei
2020-12-06kernel: time_manager: Add missing lock guards.bunnei
2020-12-06hle: kernel: Migrate to KScopedSchedulerLock.bunnei
2020-12-06hle: kernel: Separate KScopedSchedulerLockAndSleep from k_scheduler.bunnei
2020-12-06hle: kernel: Separate KScheduler from GlobalSchedulerContext class.bunnei
2020-12-06hle: kernel: Rewrite scheduler implementation based on Mesopshere.bunnei
2020-12-06hle: kernel: physical_core: Clear exclusive state after each run.bunnei
- This is closer to pre-multicore behavior, and works a bit better.
2020-12-06hle: kernel: Port KAbstractSchedulerLock from Mesosphere.bunnei
2020-12-06hle: kernel: svc: Remove reschedule on svcBreak.bunnei
- This breaks things, and is unnecessary, since emulation will be done at this point.
2020-12-06hle: kernel: process: Add schedule count tracking, to be used for yield impl.bunnei
2020-12-06hle: kernel: svc: Remove unnecessary hack in svcSleep.bunnei
2020-12-06common: Port KPriorityQueue from Mesosphere.bunnei