summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/svc.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Kernel/SVC: Support special core values -2 and -3 in svcSetThreadCoreMask.Subv2018-05-311-1/+26
| | | | Also added some proper error handling.
* Kernel/SVC: Signal the highest priority threads first in svcSignalProcessWideKey.Subv2018-05-191-51/+68
|
* Kernel/Threads: Reschedule the proper core when operating on that core's threads.Subv2018-05-191-2/+6
|
* SVC: Removed unused WaitSynchronization1 functionSubv2018-05-191-30/+0
|
* thread: Rename mask to affinity_masks.bunnei2018-05-111-1/+1
|
* threading: Reschedule only on cores that are necessary.bunnei2018-05-111-2/+2
|
* svc: Implement GetThreadCoreMask and SetThreadCoreMask.bunnei2018-05-111-7/+22
|
* svc: SignalProcessWideKey should apply to all cores.bunnei2018-05-111-43/+50
|
* svc: Implement GetCurrentProcessorNumber.bunnei2018-05-111-2/+2
|
* core: Implement multicore support.bunnei2018-05-111-21/+22
|
* general: Make formatting of logged hex values more straightforwardLioncash2018-05-021-38/+39
| | | | | | This makes the formatting expectations more obvious (e.g. any zero padding specified is padding that's entirely dedicated to the value being printed, not any pretty-printing that also gets tacked on).
* string_util: Remove StringFromFormat() and related functionsLioncash2018-04-301-1/+1
| | | | Given we utilize fmt, we don't need to provide our own functions for formatting anymore
* general: Convert assertion macros over to be fmt-compatibleLioncash2018-04-271-1/+1
|
* kernel: Migrate logging macros to fmt-compatible onesLioncash2018-04-261-69/+69
|
* Merge pull request #370 from Subv/sync_primitivesbunnei2018-04-231-107/+55
|\ | | | | Kernel: Reworked the new kernel synchronization primitives.
| * Kernel: Implemented mutex priority inheritance.Subv2018-04-231-0/+9
| | | | | | | | | | | | | | 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.
| * Kernel: Remove unused ConditionVariable class.Subv2018-04-211-6/+0
| |
| * Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKeySubv2018-04-211-83/+46
| | | | | | | | They work in tandem with guest code to provide synchronization primitives along with svcArbitrateLock/Unlock
| * Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock.Subv2018-04-211-20/+2
| | | | | | | | | | | | | | | | | | | | 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.
* | resource_limit: Make ResourceTypes an enum classLioncash2018-04-211-2/+2
|/ | | | Prevents enum identifiers from leaking into the surrounding scope.
* common_funcs: Remove ARRAY_SIZE macroLioncash2018-04-201-1/+2
| | | | C++17 has non-member size() which we can just call where necessary.
* Various service name fixes - part 2 (rebased) (#322)Hexagon122018-04-171-8/+8
| | | | | | | | | | | | | | | | * 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
* svc: Stub out SetThreadActivity, GetThreadContext.bunnei2018-04-031-2/+14
|
* svc: Stub GetThreadCoreMask.bunnei2018-03-301-3/+11
|
* More Warning cleanupsN00byKing2018-03-191-1/+1
|
* Clean Warnings (?)N00byKing2018-03-191-1/+1
|
* svc: Use more correct values for GetInfo MapRegion and NewMapRegion.bunnei2018-03-161-5/+5
|
* MemoryState: Add additional memory states and improve naming.bunnei2018-03-161-1/+1
|
* core: Move process creation out of global state.bunnei2018-03-141-18/+20
|
* Merge pull request #215 from N00byKing/umapsharedmmrybunnei2018-02-261-1/+12
|\ | | | | UnmapSharedMemory
| * (Hopefully) Fix MinGW BuildN00byKing2018-02-251-1/+1
| |
| * Add UnmapSharedMemoryN00byKing2018-02-251-1/+12
| | | | | | | | | | | | | | | | C++11 requires spaces on the Identifier Add inttypes include clang
* | Stub more functionsmailwl2018-02-221-1/+11
|/
* kernel: Use Scheduler class for threading.bunnei2018-02-181-2/+2
|
* GetInfo: Implement IsCurrentProcessBeingDebugged.bunnei2018-02-041-0/+3
|
* WaitProcessWideKeyAtomic: Handle case where condition variable was already created.bunnei2018-02-041-8/+15
|
* svc: SharedMemory size should be 64-bits and cleanup.bunnei2018-02-031-8/+8
|
* ArbitrateLock: Assert that requesting_thread is current_thread.bunnei2018-02-031-0/+1
|
* hle: Remove Domain and SyncObject kernel objects.bunnei2018-01-251-2/+1
|
* Format: Run the new clang format on everythingJames Rowe2018-01-211-4/+6
|
* Added CreateSharedMemory & UNIMPLEMENTED() for non existent services. (#113)David2018-01-201-1/+13
| | | | | | | | | | | | * Added svcCreateSharedMemory * Services which are not implemented now throw UNIMPLEMENTED() * clang-format * changed perms to u32 * removed camelcase
* svc: Fix svcGetInfo MapRegionBaseAddr.bunnei2018-01-191-1/+1
|
* svc: Rename some entries to match their analogue on SwitchBrewLioncash2018-01-181-7/+7
| | | | 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.
* svc: Add CreateJitMemory and MapJitMemory svc stringsLioncash2018-01-181-2/+2
| | | | Makes the table match SwitchBrew for these entries
* svc: Clang-format fix.bunnei2018-01-171-6/+4
|
* SVC: Correct some return values in svcGetInfo and added TitleId and PrivilegedProcessId stubs.Subv2018-01-171-6/+21
| | | | | # Conflicts: # src/core/hle/kernel/svc.cpp
* Merge pull request #52 from ogniK5377/fspbunnei2018-01-171-1/+18
|\ | | | | 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
| * SetThreadCoreMask stub, time to implement fspDavid Marcec2018-01-161-1/+6
| |
| * Added more svcGetInfo pairsDavid Marcec2018-01-161-0/+12
| |
* | clang-formatMerryMage2018-01-161-6/+4
|/
* svc: Implement svcMapSharedMemory.bunnei2018-01-141-1/+33
|
* yuzu: Update license text to be consistent across project.bunnei2018-01-131-1/+1
|
* core: Include <algorithm> where used.bunnei2018-01-121-0/+2
|
* svc: Implement GetSystemTick.bunnei2018-01-121-2/+13
|
* svc: Stub ResetSignal and CreateTransferMemorySubv2018-01-111-3/+20
|
* svc: Stub SetMemoryAttributeSubv2018-01-111-0/+5
|
* Threads: Added enum values for the Switch's 4 cpu cores and implemented svcGetInfo(AllowedCpuIdBitmask)Subv2018-01-101-6/+11
|
* SVC: Fixed WaitSynchronization with multiple handles when none is immediately ready.Subv2018-01-091-7/+18
|
* SVC: Implemented CancelSynchronization.Subv2018-01-091-1/+17
|
* SVC: Fixed WaitSynchronization with multiple handles when at least one of them is ready.Subv2018-01-091-1/+24
|
* kernel: Rename Semaphore to ConditionVariable.bunnei2018-01-091-25/+33
|
* Kernel: Actually wake up the requested number of threads in Semaphore::Release.Subv2018-01-091-1/+1
| | | | | | 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.
* Kernel: Properly keep track of mutex lock data in the guest memory. This fixes userland locking/unlocking.Subv2018-01-091-1/+4
|
* Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback.Subv2018-01-091-15/+41
|
* svc: Implement svcSignalProcessWideKey.bunnei2018-01-071-2/+21
|
* svc: Implement svcWaitProcessWideKeyAtomic.bunnei2018-01-061-1/+49
|
* svc: Implement WaitSynchronization for a single handle.bunnei2018-01-061-4/+24
|
* svc: Refactor LockMutex code to use WaitSynchronization1.bunnei2018-01-061-13/+45
|
* svc: Add missing string_util include.bunnei2018-01-051-0/+1
|
* arm: Remove SkyEye/Dyncom code that is ARMv6-only.bunnei2018-01-031-19/+9
|
* svc: Remove unnecessary "svc" prefix to naming scheme.bunnei2018-01-031-106/+106
|
* hle: Move SVC code to kernel namespace.bunnei2018-01-031-0/+612