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.
2018-04-23 11:23:44 -05:00
Subv
f5a2b1920b
Kernel: Remove unused ConditionVariable class.
2018-04-20 21:04:33 -05:00
Subv
fcd7cbe65a
Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKey
...
They work in tandem with guest code to provide synchronization primitives along with svcArbitrateLock/Unlock
2018-04-20 21:04:27 -05:00
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.
2018-04-20 21:04:25 -05:00
Lioncash
c9f5ae4fcc
common_funcs: Remove ARRAY_SIZE macro
...
C++17 has non-member size() which we can just call where necessary.
2018-04-19 22:36:52 -04:00
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
2018-04-17 11:37:43 -04:00
bunnei
e71cfbce72
svc: Stub out SetThreadActivity, GetThreadContext.
2018-04-02 23:51:01 -04:00
bunnei
86f0e841d8
svc: Stub GetThreadCoreMask.
2018-03-29 21:23:15 -04:00
N00byKing
8d34c0d2a0
More Warning cleanups
2018-03-19 17:27:04 +01:00
N00byKing
1212e9e231
Clean Warnings (?)
2018-03-19 17:07:08 +01:00
bunnei
a0b00fe2d1
svc: Use more correct values for GetInfo MapRegion and NewMapRegion.
2018-03-16 18:32:23 -04:00
bunnei
29bda49fc0
MemoryState: Add additional memory states and improve naming.
2018-03-16 18:32:21 -04:00
bunnei
f16763ed52
core: Move process creation out of global state.
2018-03-14 18:42:19 -04:00
bunnei
1f73bf3fb0
Merge pull request #215 from N00byKing/umapsharedmmry
...
UnmapSharedMemory
2018-02-25 21:04:24 -08:00
N00byKing
ac2232b9cf
(Hopefully) Fix MinGW Build
2018-02-25 13:40:22 +01:00
N00byKing
11cef9ba72
Add UnmapSharedMemory
...
C++11 requires spaces on the Identifier
Add inttypes include
clang
2018-02-25 11:38:06 +01:00
mailwl
8f256914fc
Stub more functions
2018-02-22 17:28:15 +03:00
bunnei
539977f39b
kernel: Use Scheduler class for threading.
2018-02-18 15:17:16 -05:00
bunnei
23c46db6f7
GetInfo: Implement IsCurrentProcessBeingDebugged.
2018-02-04 12:34:45 -05:00
bunnei
37967da1f2
WaitProcessWideKeyAtomic: Handle case where condition variable was already created.
2018-02-04 12:30:51 -05:00
bunnei
4a19b608fd
svc: SharedMemory size should be 64-bits and cleanup.
2018-02-03 13:36:54 -05:00
bunnei
9892a119da
ArbitrateLock: Assert that requesting_thread is current_thread.
2018-02-03 13:29:18 -05:00
bunnei
4fabdf77d7
hle: Remove Domain and SyncObject kernel objects.
2018-01-24 22:18:54 -05:00
James Rowe
ea88c44eb8
Format: Run the new clang format on everything
2018-01-20 16:45:11 -07:00
David
61a92c7347
Added CreateSharedMemory & UNIMPLEMENTED() for non existent services. ( #113 )
...
* Added svcCreateSharedMemory
* Services which are not implemented now throw UNIMPLEMENTED()
* clang-format
* changed perms to u32
* removed camelcase
2018-01-19 19:35:25 -05:00
bunnei
94483465ad
svc: Fix svcGetInfo MapRegionBaseAddr.
2018-01-18 23:44:15 -05:00
Lioncash
e396daeb9d
svc: Rename some entries to match their analogue on SwitchBrew
...
Makes the codebase a little more consistent with regards to available documentation. Also amends the duplicate case where there was a similar entry at 0x72 named ConnectToPort.
2018-01-17 20:38:23 -05:00
Lioncash
9453658987
svc: Add CreateJitMemory and MapJitMemory svc strings
...
Makes the table match SwitchBrew for these entries
2018-01-17 20:32:56 -05:00
bunnei
11c878023f
svc: Clang-format fix.
2018-01-17 12:19:17 -05:00
Subv
6b3510cca6
SVC: Correct some return values in svcGetInfo and added TitleId and PrivilegedProcessId stubs.
...
# Conflicts:
# src/core/hle/kernel/svc.cpp
2018-01-16 18:50:23 -05:00
bunnei
227f2f7664
Merge pull request #52 from ogniK5377/fsp
...
added more svcGetInfo pairs for 3.0.0+ support, Changed HEAP_SIZE and TLS_AREA_VADDR. changed mem usage & heap usage stub added, ISelfController, IApplication function stubs. Added SetThreadCoreMask
2018-01-16 18:27:48 -05:00
David Marcec
18295b0325
SetThreadCoreMask stub, time to implement fsp
2018-01-16 14:23:53 -08:00
David Marcec
eb1ddebb18
Added more svcGetInfo pairs
2018-01-16 14:06:45 -08:00
MerryMage
41bfd994f6
clang-format
2018-01-16 18:05:21 +00:00
bunnei
e9e51c7181
svc: Implement svcMapSharedMemory.
2018-01-14 17:20:55 -05:00
bunnei
182548ec86
yuzu: Update license text to be consistent across project.
2018-01-13 16:22:39 -05:00
bunnei
7e02ba1ae3
core: Include <algorithm> where used.
2018-01-11 22:36:56 -05:00
bunnei
e2db6b98fe
svc: Implement GetSystemTick.
2018-01-11 21:59:31 -05:00
Subv
edeb55d78b
svc: Stub ResetSignal and CreateTransferMemory
2018-01-10 23:27:59 -05:00
Subv
377e2a79b5
svc: Stub SetMemoryAttribute
2018-01-10 23:27:56 -05:00
Subv
9362706e1d
Threads: Added enum values for the Switch's 4 cpu cores and implemented svcGetInfo(AllowedCpuIdBitmask)
2018-01-10 01:01:55 -05:00
Subv
db71b23c80
SVC: Fixed WaitSynchronization with multiple handles when none is immediately ready.
2018-01-09 15:02:43 -05:00
Subv
607a46a662
SVC: Implemented CancelSynchronization.
2018-01-09 15:02:04 -05:00
Subv
84d05d5b6c
SVC: Fixed WaitSynchronization with multiple handles when at least one of them is ready.
2018-01-09 11:53:50 -05:00
bunnei
7a59da7834
kernel: Rename Semaphore to ConditionVariable.
2018-01-08 21:41:37 -05:00
Subv
96e2acfa8f
Kernel: Actually wake up the requested number of threads in Semaphore::Release.
...
Also properly keep track of data in guest memory, this fixes managing the semaphore from userland.
It was found that Semaphores are actually Condition Variables, with Release(1) and Release(-1) being equivalent to notify_one and notify_all. We should change the name of the class to reflect this.
2018-01-08 21:12:54 -05:00
Subv
2ca36ac394
Kernel: Properly keep track of mutex lock data in the guest memory. This fixes userland locking/unlocking.
2018-01-08 21:12:51 -05:00
Subv
ac8f05943b
Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback.
2018-01-08 21:12:49 -05:00
bunnei
1aac4945d2
svc: Implement svcSignalProcessWideKey.
2018-01-07 16:55:17 -05:00
bunnei
2720d550b7
svc: Implement svcWaitProcessWideKeyAtomic.
2018-01-06 16:14:12 -05:00