aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle
AgeCommit message (Collapse)Author
2021-01-05core: Silence warnings when compiling without assertsReinUsesLisp
2021-01-04buffer_queue: Protect queue_sequence list access with a mutexameerj
fixes a data race as this is an unprotected variable manipulated by multiple threads
2021-01-02hle: service: nvflinger: buffer_queue: Do not reset id/layer_id on Connect.bunnei
- This behavior is a mistake, fixes Katana Zero.
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-30service/pcie: Fix invalid initialization argumentReinUsesLisp
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-28hle: service: Acquire and release a lock on requests.bunnei
- This makes it such that we can safely access service members from CoreTiming thread.
2020-12-28core: hle: kernel: Clear process list on boot.bunnei
2020-12-28hle: service: vi: Refactor to grab buffer only once.bunnei
2020-12-28service: nvflinger: Improve synchronization for BufferQueue.bunnei
- Use proper mechanisms for blocking on DequeueBuffer. - Ensure service thread terminates on emulation Shutdown.
2020-12-28hle: service: Ensure system is powered on before writing IPC result.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: service: bsd: Update to work with service threads, removing ↵bunnei
SleepClientThread.
2020-12-28hle: service: nvdrv: Revert #4981 to remove usage of SleepClientThread.bunnei
- Note, this always processes the ioctl right away, which fixes BotW 1.0.0 issues.
2020-12-28hle: kernel: service_thread: Add parameter for thread pool size.bunnei
2020-12-28hle: service: nvflinger: Refactor locking and interfaces.bunnei
2020-12-28hle: service: vi: Remove usage of SleepClientThread.bunnei
2020-12-28core: hle: server_session: Use separate threads for each service connection.bunnei
2020-12-21Merge pull request #5042 from Morph1984/project-aetherbunnei
Project Aether: Reimplementation of the Web Browser Applet
2020-12-20Merge pull request #5131 from bunnei/scheduler-rewritebunnei
Rewrite Kernel scheduler based on Atmosphere
2020-12-18applets/web: Implement the online web browser appletMorph
2020-12-18main, applets/web: Re-add progress dialog for RomFS extractionMorph
2020-12-18pl_u, applets/web: Decrypt shared fonts to TTF filesMorph
2020-12-18ns_vm: Stub NeedsUpdateVulnerabilityMorph
This is used to force system updates on launching the web browser. We do not care about system updates so this can be set to false.
2020-12-18controllers/npad: Make press_state atomicMorph
2020-12-18applets/web: Implement the default web browser applet frontendMorph
2020-12-18applets/web: Implement the offline browser applet backendMorph
2020-12-18applets/web: Initial implementation of the web browser appletMorph
2020-12-18applets: Remove the previous web browser applet implementationMorph
2020-12-18buffer_queue: better use of std::arrayameerj
2020-12-17Overwrite slots instead of queuing them, add disconnect signalameerj
Fix for Katana Zero and Yoshi's Crafted World
2020-12-15Merge pull request #5190 from Morph1984/validate_device_handlebunnei
controllers/npad: Validate device handles before use
2020-12-15Merge pull request #5119 from Morph1984/fs-opendatastoragewithprogramindexbunnei
fsp_srv: Implement OpenDataStorageWithProgramIndex
2020-12-14Merge pull request #5168 from Morph1984/aoc-PurchaseEventManagerbunnei
aoc_u: Stub IPurchaseEventManager and its service commands
2020-12-12controllers/npad: Validate device handles before useMorph
Some games such as NEKOPARA Vol. 3 send invalid device handles when calling InitializeVibrationDevice. Introduce a check to validate the device handle before use.
2020-12-11Merge pull request #5172 from lioncash/svc-widebunnei
svc: Remove unnecessary casts
2020-12-10Merge pull request #5123 from Morph1984/nim-IsLargeResourceAvailablebunnei
nim: Stub IsLargeResourceAvailable