aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle
AgeCommit message (Collapse)Author
2022-01-22core: hle: kernel: Refactor Un/MapPhysicalMemory to remove unnecessary methods.bunnei
2022-01-22core: hle: kernel: Rename Un/Map to Un/MapMeory.bunnei
2022-01-21Merge pull request #7737 from bunnei/fix-dummy-thread-leakbunnei
Various fixes to HLE service thread management
2022-01-21Merge pull request #7752 from Morph1984/SetCpuOverclockEnabledbunnei
service: apm: Stub ISession SetCpuOverclockEnabled
2022-01-21hle: kernel: KThread: Ensure host (dummy) threads block on locking.bunnei
- But do not enter the priority queue, as otherwise they will be scheduled. - Allows dummy threads to use guest synchronization primitives.
2022-01-21service/wlan: Update function tablesLioncash
2022-01-21service/usb: Update function tablesLioncash
2022-01-21service/set: Update function tablesLioncash
2022-01-21service/ns: Update function tablesLioncash
2022-01-21service/nim: Update unknown function table entriesLioncash
2022-01-21service/friend: Update unknown function table entriesLioncash
2022-01-21service/filsystem: Update fsp-srv function tableLioncash
2022-01-21service/btm: Update function tablesLioncash
2022-01-21service/audio: Update audctl unknown function namesLioncash
2022-01-21service/am: Update omm function tablesLioncash
2022-01-21service/acc: Update unknown function namesLioncash
Switchbrew has the function names now.
2022-01-20service: apm: Stub ISession SetCpuOverclockEnabledMorph
Since we don't currently support CPU overclocking within the emulated system, this can be stubbed for now, like APM IsCpuOverclockEnabled. - Used by Gravity Rider Zero
2022-01-20hle: kernel: Remove redundant tracking of dummy threads.bunnei
- These are already tracked by kernel's registered_objects member.
2022-01-20hle: kernel: KThread: DummyThread can be waited, ensure wait_queue is not ↵bunnei
nullptr.
2022-01-20hle: kernel: KThread: Decrease DummyThread priority to ensure it is never ↵bunnei
scheduled.
2022-01-20hle: kernel: service_thread: Ensure dummy thread is closed & destroyed on ↵bunnei
thread exit.
2022-01-20hle: kernel: KServerSession: Remove hack for CompleteSyncRequest.bunnei
- This does not appear to be necessary anymore.
2022-01-20hle: kernel: KServerSession: Simplify CompleteSyncRequest EndWait.bunnei
- Considering is_thread_waiting is never set, so we can remove IsThreadWaiting. - KThread::EndWait will take the scheduler lock, so we can remove the redundant lock.
2022-01-20hle: kernel: KThread: Ensure dummy threads never call EndWait.bunnei
- These are only used by host threads for locking and will never have a wait_queue.
2022-01-20hle: kernel: KScheduler: Ensure dummy threads are never scheduled.bunnei
- These are only used by host threads for locking.
2022-01-20hle: kernel: KThread: Rename thread_type_for_debugging -> thread_type.bunnei
- This will be used to ensure that we do not schedule dummy threads.
2022-01-19Merge pull request #7726 from german77/clampMorph
service/hid: Initialize applet_resource on SetNpadAnalogStickUseCenterClamp
2022-01-19service/hid: Initialize applet_resource on SetNpadAnalogStickUseCenterClampgerman77
2022-01-18Merge pull request #7701 from bunnei/clear-mem-pagesbunnei
Kernel Memory Updates (Part 3): Clear KMemoryManager pages & other fixes
2022-01-17Merge pull request #7712 from bunnei/fix-thread-exitbunnei
Accurately implement thread exit
2022-01-17hle: remove no-op codeValeri
Found by static analysis with PVS-Studio. Nobody seems to really know what was it doing there.
2022-01-14Merge pull request #7711 from bunnei/fix-service-thread-race-v2bunnei
hle: kernel: Fix service_threads access to be thread safe V2.
2022-01-14hle: kernel: k_memory_manager: Clear pages on allocation & free.bunnei
- Heap pages should be zero'd. - Also explicitly passed along heap allocation option.
2022-01-14Merge pull request #7707 from german77/slow-updatebunnei
service/hid: Decrease motion update rate
2022-01-14core: hle: kernel: KThread: Integrate with KWorkerTask and implement ↵bunnei
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-14core: hle: kernel: KProcess: Integrate with KWorkerTask and add ↵bunnei
unimplemented DoWorkerTaskImpl.
2022-01-14core: hle: kernel: KThread: Replace Suspend with UpdateState & various updates.bunnei
- This makes our implementations of these more closely match HOS.
2022-01-14core: hle: kernel: Instantiate a kernel instance of KWorkerTaskManager.bunnei
2022-01-14core: hle: kernel: Add KWorkerTask and KWorkerTaskManager.bunnei
- These primitives are used to dispatch asynchronous kernel tasks from KThread and KProcess.
2022-01-14hle: kernel: Fix service_threads access to be thread safe V2.bunnei
- PR #7699 attempted to fix CreateServiceThread and ReleaseServiceThread to be thread safe, but inadvertently introduced a possible dead-lock. - With this PR, we use a worker thread to manage the service thread list, allowing it only to be accessed by a single thread, and guaranteeing threads will not destroy themselves. - Fixes a rare crash in Pokemon Sword/Shield, I've now run this game for ~12 hours non-stop and am quite confident this is a good solution for this issue.
2022-01-14Merge pull request #7699 from bunnei/fix-service-thread-raceMai M
hle: kernel: Fix service_threads access to be thread safe.
2022-01-13hle: kernel: Fix service_threads access to be thread safe.bunnei
- CreateServiceThread and ReleaseServiceThread can be accessed by different threads, uses a lock to make this thread safe. - Fixes a rare crash in Pokemon Sword/Shield that can occur when a new service thread is being created while an old one is being destroyed.
2022-01-12service/hid: Decrease motion update rateNarr the Reg
Motion stops working in Mario Tennis in swing mode if the update rate is too fast even when HW it updates at the same speed. 10ms it's the minimum period that the game needs to start working again.
2022-01-11hle: kernel: k_page_table: Update SetProcessMemoryPermission.bunnei
2022-01-11hle: service: ldr: UnmapCodeMemory BSS only when set.bunnei
2022-01-11hle: kernel: k_page_table: ReadAndWrite -> UserReadWrite.bunnei
2022-01-11hle: kernel: k_page_table: Rename *ProcessCodeMemory -> *CodeMemory.bunnei
2022-01-08core: hle: kernel: svc: Updates to SetMemoryAttribute and SetMemoryPermission.bunnei
2022-01-08core: hle: kernel: k_page_table: Update CheckMemoryState.bunnei
2022-01-04Merge pull request #7636 from vonchenplus/buffer_queue_querybunnei
core:hle:service:nvflinger Implement few type in bufferqueue query method