Lioncash
d1e3e0eb42
string_util: Remove StringFromFormat() and related functions
Given we utilize fmt, we don't need to provide our own functions for formatting anymore
8 years ago
Lioncash
324ee31fc3
general: Convert assertion macros over to be fmt-compatible
8 years ago
Lioncash
bd9414dd31
kernel: Migrate logging macros to fmt-compatible ones
8 years ago
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
f5a2b1920b
Kernel: Remove unused ConditionVariable class.
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
5860b9f4ce
resource_limit: Make ResourceTypes an enum class
Prevents enum identifiers from leaking into the surrounding scope.
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
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
bunnei
e71cfbce72
svc: Stub out SetThreadActivity, GetThreadContext.
8 years ago
bunnei
86f0e841d8
svc: Stub GetThreadCoreMask.
8 years ago
N00byKing
8d34c0d2a0
More Warning cleanups
8 years ago
N00byKing
1212e9e231
Clean Warnings (?)
8 years ago
bunnei
a0b00fe2d1
svc: Use more correct values for GetInfo MapRegion and NewMapRegion.
8 years ago
bunnei
29bda49fc0
MemoryState: Add additional memory states and improve naming.
8 years ago
bunnei
f16763ed52
core: Move process creation out of global state.
8 years ago
N00byKing
ac2232b9cf
(Hopefully) Fix MinGW Build
8 years ago
N00byKing
11cef9ba72
Add UnmapSharedMemory
C++11 requires spaces on the Identifier
Add inttypes include
clang
8 years ago
mailwl
8f256914fc
Stub more functions
8 years ago
bunnei
539977f39b
kernel: Use Scheduler class for threading.
8 years ago
bunnei
23c46db6f7
GetInfo: Implement IsCurrentProcessBeingDebugged.
8 years ago
bunnei
37967da1f2
WaitProcessWideKeyAtomic: Handle case where condition variable was already created.
8 years ago
bunnei
4a19b608fd
svc: SharedMemory size should be 64-bits and cleanup.
8 years ago
bunnei
9892a119da
ArbitrateLock: Assert that requesting_thread is current_thread.
8 years ago
bunnei
4fabdf77d7
hle: Remove Domain and SyncObject kernel objects.
8 years ago
James Rowe
ea88c44eb8
Format: Run the new clang format on everything
8 years ago
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
8 years ago
bunnei
94483465ad
svc: Fix svcGetInfo MapRegionBaseAddr.
8 years ago
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.
8 years ago
Lioncash
9453658987
svc: Add CreateJitMemory and MapJitMemory svc strings
Makes the table match SwitchBrew for these entries
8 years ago
bunnei
11c878023f
svc: Clang-format fix.
8 years ago
Subv
6b3510cca6
SVC: Correct some return values in svcGetInfo and added TitleId and PrivilegedProcessId stubs.
# Conflicts:
# src/core/hle/kernel/svc.cpp
8 years ago
David Marcec
18295b0325
SetThreadCoreMask stub, time to implement fsp
8 years ago
David Marcec
eb1ddebb18
Added more svcGetInfo pairs
8 years ago
MerryMage
41bfd994f6
clang-format
8 years ago
bunnei
e9e51c7181
svc: Implement svcMapSharedMemory.
8 years ago
bunnei
182548ec86
yuzu: Update license text to be consistent across project.
8 years ago
bunnei
7e02ba1ae3
core: Include <algorithm> where used.
8 years ago
bunnei
e2db6b98fe
svc: Implement GetSystemTick.
8 years ago
Subv
edeb55d78b
svc: Stub ResetSignal and CreateTransferMemory
8 years ago
Subv
377e2a79b5
svc: Stub SetMemoryAttribute
8 years ago
Subv
9362706e1d
Threads: Added enum values for the Switch's 4 cpu cores and implemented svcGetInfo(AllowedCpuIdBitmask)
8 years ago
Subv
db71b23c80
SVC: Fixed WaitSynchronization with multiple handles when none is immediately ready.
8 years ago
Subv
607a46a662
SVC: Implemented CancelSynchronization.
8 years ago
Subv
84d05d5b6c
SVC: Fixed WaitSynchronization with multiple handles when at least one of them is ready.
8 years ago
bunnei
7a59da7834
kernel: Rename Semaphore to ConditionVariable.
8 years ago
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.
8 years ago
Subv
2ca36ac394
Kernel: Properly keep track of mutex lock data in the guest memory. This fixes userland locking/unlocking.
8 years ago
Subv
ac8f05943b
Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback.
8 years ago