yuzu-fork/src/core/hle/kernel
Subv e81a2080eb Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock.
Switch mutexes are no longer kernel objects, they are managed in userland and only use the kernel to handle the contention case.
Mutex addresses store a special flag value (0x40000000) to notify the guest code that there are still some threads waiting for the mutex to be released. This flag is updated when a thread calls ArbitrateUnlock.

TODO:
* Fix svcWaitProcessWideKey
* Fix svcSignalProcessWideKey
* Remove the Mutex class.
2018-04-20 21:04:25 -05:00
..
client_port.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
client_port.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
client_session.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
client_session.h hle: Integrate Domain handling into ServerSession. 2018-01-24 22:18:56 -05:00
condition_variable.cpp WaitProcessWideKeyAtomic: Handle case where condition variable was already created. 2018-02-04 12:30:51 -05:00
condition_variable.h WaitProcessWideKeyAtomic: Handle case where condition variable was already created. 2018-02-04 12:30:51 -05:00
errors.h Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock. 2018-04-20 21:04:25 -05:00
event.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
event.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
handle_table.cpp core: Move process creation out of global state. 2018-03-14 18:42:19 -04:00
handle_table.h handle_table: Remove ConvertSessionToDomain. 2018-01-24 22:18:51 -05:00
hle_ipc.cpp hle_ipc, fsp_srv: Cleanup logging. 2018-03-31 23:30:00 -04:00
hle_ipc.h hle_ipc: Add SleepClientThread to block current thread within HLE routines. 2018-03-18 20:56:34 -04:00
kernel.cpp core: Move process creation out of global state. 2018-03-14 18:42:19 -04:00
kernel.h kernel: Move stack region outside of application heap. 2018-03-16 18:32:23 -04:00
memory.cpp clang-format 2018-01-16 18:05:21 +00:00
memory.h kernel: Various 64-bit fixes in memory/process/thread 2017-12-29 13:27:58 -05:00
mutex.cpp Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock. 2018-04-20 21:04:25 -05:00
mutex.h Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock. 2018-04-20 21:04:25 -05:00
object_address_table.cpp Clean Warnings (?) 2018-03-19 17:07:08 +01:00
object_address_table.h yuzu: Update license text to be consistent across project. 2018-01-13 16:22:39 -05:00
process.cpp memory: Fix stack region. 2018-03-31 16:06:45 -04:00
process.h core: Move process creation out of global state. 2018-03-14 18:42:19 -04:00
resource_limit.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
resource_limit.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
scheduler.cpp core: Move process creation out of global state. 2018-03-14 18:42:19 -04:00
scheduler.h scheduler: Cleanup based on PR feedback. 2018-02-19 16:46:42 -05:00
server_port.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
server_port.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
server_session.cpp Clang Fixes 2018-03-19 17:53:35 +01:00
server_session.h Kernel/IPC: Add a small delay after each SyncRequest to prevent thread starvation. 2018-02-18 13:25:48 -05:00
session.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
session.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
shared_memory.cpp shared_memory: Remove incorrect 3ds-specific check. 2018-04-02 23:50:58 -04:00
shared_memory.h svc: SharedMemory size should be 64-bits and cleanup. 2018-02-03 13:36:54 -05:00
svc.cpp Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock. 2018-04-20 21:04:25 -05:00
svc.h svc: Add additional fields to MemoryInfo struct. 2018-01-18 23:37:54 -05:00
svc_wrap.h svc: Stub out SetThreadActivity, GetThreadContext. 2018-04-02 23:51:01 -04:00
thread.cpp Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock. 2018-04-20 21:04:25 -05:00
thread.h Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock. 2018-04-20 21:04:25 -05:00
timer.cpp Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
timer.h Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
vm_manager.cpp vm_manager: Increase GetTotalMemoryUsage value. 2018-04-14 22:04:10 -04:00
vm_manager.h svc: Use more correct values for GetInfo MapRegion and NewMapRegion. 2018-03-16 18:32:23 -04:00
wait_object.cpp thread: Add THREADSTATUS_WAIT_HLE_EVENT, remove THREADSTATUS_WAIT_ARB. 2018-03-18 20:56:32 -04:00
wait_object.h wait_object: Refactor to allow waking up a single thread. 2018-01-07 16:33:41 -05:00