Subv
329bec6dbd
Kernel: Implemented mutex priority inheritance.
Verified with a hwtest and implemented based on reverse engineering.
Thread A's priority will get bumped to the highest priority among all the threads that are waiting for a mutex that A holds.
Once A releases the mutex and ownership is transferred to B, A's priority will return to normal and B's priority will be bumped.
8 years ago
Subv
e56ef284bb
NvDrv/nvhost-as-gpu: Ensure that the object passed to MapBufferEx has already been allocated.
Also added a consistency check and a comment for the case when the object id is different than its handle. The real nvservices doesn't make a distinction between ids and handles, each object gets an unique handle which doubles as its id.
8 years ago
Subv
c4131e271f
Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command.
It takes a previously-reserved (AllocateSpace) GPU memory address and maps it to the address of the nvmap object passed to Remap.
8 years ago
Subv
3c2b29e5c2
Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers.
8 years ago
Subv
4be07d1090
Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOs
8 years ago
Subv
106d31e8c3
Qt: Update the WaitTree widget to show info about the current mutex of each thread.
8 years ago
Subv
f5a2b1920b
Kernel: Remove unused ConditionVariable class.
8 years ago
Subv
e499b48f97
Kernel: Remove old and unused Mutex code.
8 years ago
Subv
fcd7cbe65a
Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKey
They work in tandem with guest code to provide synchronization primitives along with svcArbitrateLock/Unlock
8 years ago
Subv
4e47dd5b59
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.
8 years ago
Lioncash
4bd499d440
core: Relocate g_service_manager to the System class
Converts the service manager from a global into an instance-based
variable.
8 years ago
Lioncash
5860b9f4ce
resource_limit: Make ResourceTypes an enum class
Prevents enum identifiers from leaking into the surrounding scope.
8 years ago
Lioncash
043546e4db
math_util: Remove the Clamp() function
C++17 adds clamp() to the standard library, so we can remove ours in
favor of it.
8 years ago
Lioncash
c9f5ae4fcc
common_funcs: Remove ARRAY_SIZE macro
C++17 has non-member size() which we can just call where necessary.
8 years ago
Lioncash
6d94dd21a5
service: Use nested namespace specifiers where applicable
Tidies up namespace declarations
8 years ago
Lioncash
59a504d933
vi: Remove redundant initializers in the constructors
8 years ago
Lioncash
5b8891df28
disk_filesystem: Remove unused total_entries_in_directory member from Disk_Directory
8 years ago
Lioncash
eb2bb5500e
disk_filesystem: Remove redundant initializer in Disk_Directory's constructor
8 years ago
Lioncash
19fe9a92ec
disk_filesystem: Make constructors explicit where applicable
8 years ago
bunnei
b17664dfa9
nvflinger: Call MicroProfileFlip on NVFlinger::Compose.
8 years ago
mailwl
59077b7d07
Service/VI: stub SetLayerVisibility, fix GetDisplayResolution output
both SetLayerVisibility() functions used in Lego games, GetDisplayResolution()
fixed according switchbrew.org
8 years ago
shinyquagsire23
5634f49b60
file_sys: Use NGLOG
8 years ago
Hexagon12
4c462c91bd
Various service name fixes - part 2 (rebased) ( #322 )
* Updated ACC with more service names
* Updated SVC with more service names
* Updated set with more service names
* Updated sockets with more service names
* Updated SPL with more service names
* Updated time with more service names
* Updated vi with more service names
8 years ago
shinyquagsire23
13ab489cb7
file_sys: tweaks
8 years ago
shinyquagsire23
bba0a351e7
file_sys: Add HFS/PFS helper component
8 years ago
bunnei
f6ba44429e
pl_u: Use empty shared font if none is available.
- Makes games work in lieu of shared_font.bin.
8 years ago
bunnei
dc852fda3b
fsp_srv: Implement DeleteFile.
- Used by Binding of Isaac.
8 years ago
bunnei
3260473ce8
vm_manager: Increase GetTotalMemoryUsage value.
- Gets Binding of Isaac running.
8 years ago
bunnei
28c0641382
fsp_srv: Implement IFile::Flush.
8 years ago
Hexagon12
433ccdebe5
Fixed normal params in GetDisplayResolution
8 years ago
Hexagon12
e6bb2d65f8
Stubbed out GetPlayerLedPattern
8 years ago
mailwl
b439691768
Service/SSL: update service according switchbrew
8 years ago
Hexagon12
8293ccc5ed
Various fixes and clang
8 years ago
Hexagon12
6d6064d42e
Decimal change
8 years ago
Hexagon12
f171ec8b29
Updated pctl:a with new service names.
8 years ago
Hexagon12
0bd95ef3be
Updated nvmemp with new service names.
8 years ago
Hexagon12
2df3594b31
Updated nvdrv with more service names.
8 years ago
Hexagon12
837b8b5b80
Updated pl:u with more service names.
8 years ago
Hexagon12
e05e3c8a08
Updated hid with more service names.
8 years ago
Hexagon12
93b83a11b6
Updated friend:u with more service names.
8 years ago
Hexagon12
83479a3d19
Updated the unknown name
8 years ago
Hexagon12
251c576455
Updated friend:a with more service names.
8 years ago
Hexagon12
f8e0ce2cd0
Updated fsp-srv with more service names.
8 years ago
Hexagon12
82be79db10
Updated CodecCtl with more service names.
8 years ago
Hexagon12
a9239dbed8
Updated audren with more service names.
8 years ago
Hexagon12
95d5bf3aa1
Updated audrec with more service names.
8 years ago
Hexagon12
eff525cab3
Updated audout with more service names.
8 years ago
Hexagon12
ba73f4e0a4
Updated audin with more service names.
8 years ago
Hexagon12
3eab3da04c
Updated AOC with more service names.
8 years ago
Hexagon12
22ef1d1cc5
Updated AppletOE with more service names.
8 years ago