Skip to content
Snippets Groups Projects
  • Subv's avatar
    Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock. · e81a2080
    Subv authored
    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.
    e81a2080