Commit graph

770 commits

Author SHA1 Message Date
bunnei
e09f123ff7 shared_memory: Minor fixes and cleanup. 2018-01-14 17:20:55 -05:00
bunnei
e9e51c7181 svc: Implement svcMapSharedMemory. 2018-01-14 17:20:55 -05:00
bunnei
99d1279753 kernel: Increase default stack size to 64K. 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
86a8e32471 core: Fix recent GCC build breaks. 2018-01-11 22:24:09 -05:00
bunnei
e2db6b98fe svc: Implement GetSystemTick. 2018-01-11 21:59:31 -05:00
Subv
8923c80127 IPC: Corrected some definitions for the buffer C descriptor flags. 2018-01-10 23:28:02 -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
5685c764e4 ErrorCodes: Updated the InvalidHandle and Timeout kernel error codes. 2018-01-09 12:05:10 -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
bunnei
a689a33995 mutex: Remove unused call to VerifyGuestState. 2018-01-08 21:12:56 -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
B3n30
1b2aa3780d CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)
* CoreTiming: New CoreTiming; Add Test for CoreTiming
2018-01-08 19:10:25 -05:00
Subv
347ab620b5 IPC: Add functions to read the input move/copy objects from an IPC request. 2018-01-07 17:11:51 -05:00
Subv
eda468e4fb IPC: Don't attempt to read the command buffer if it holds a Close request. 2018-01-07 17:11:49 -05:00
Subv
fd93b1e0ef IPC Cleanup: Remove 3DS-specific code and translate copy, move and domain objects in IPC requests.
Popping objects from the buffer is still not implemented.
2018-01-07 17:11:47 -05:00
Subv
6a6013d4c3 IPC: Skip the entire u64 of the command id when receiving an IPC request.
Service code now doesn't have to deal with this.
2018-01-07 17:11:45 -05:00
Subv
d6a5e0b61b IPC: Use the correct size when pushing raw data to the command buffer and fixed pushing domain objects.
Domain object ids are always stored immediately after the raw data.
2018-01-07 17:11:43 -05:00
bunnei
1aac4945d2 svc: Implement svcSignalProcessWideKey. 2018-01-07 16:55:17 -05:00
bunnei
d15b38d32c semaphore: More changes for Switch. 2018-01-07 16:52:23 -05:00
bunnei
0459eb07c9 wait_object: Refactor to allow waking up a single thread. 2018-01-07 16:33:41 -05:00
bunnei
2720d550b7 svc: Implement svcWaitProcessWideKeyAtomic. 2018-01-06 16:14:12 -05:00
bunnei
2f66f2210d semaphore: Updates for Switch. 2018-01-06 15:55:40 -05:00
bunnei
260149fc9b svc: Implement WaitSynchronization for a single handle. 2018-01-06 14:34:32 -05:00
bunnei
25c27e356e svc: Refactor LockMutex code to use WaitSynchronization1. 2018-01-06 14:19:28 -05:00
bunnei
dc6b80d997 svc: Add missing string_util include. 2018-01-04 19:45:15 -05:00
bunnei
b055ea2699 arm: Remove SkyEye/Dyncom code that is ARMv6-only. 2018-01-02 22:24:12 -05:00
bunnei
5739484470 vm_manager: Use a more reasonable MAX_ADDRESS size. 2018-01-02 21:37:56 -05:00
bunnei
0d63f6dc66 svc: Remove unnecessary "svc" prefix to naming scheme. 2018-01-02 20:47:26 -05:00
bunnei
b328c577ef hle: Move SVC code to kernel namespace. 2018-01-02 20:40:30 -05:00
bunnei
6a6de01d43 vm_manager: Stub out a bunch of interfaces used by svcGetInfo. 2018-01-01 15:59:31 -05:00
bunnei
4728cc141a core/video_core: Fix a bunch of u64 -> u32 warnings. 2018-01-01 15:40:35 -05:00
bunnei
37d55a0317 svc: Implement svcExitProcess. 2018-01-01 14:38:34 -05:00
bunnei
16c66e09cc svc: Implement svcLockMutex. 2018-01-01 14:02:26 -05:00
bunnei
fba61b93c7 kernel: Add ObjectAddressTable class. 2018-01-01 13:25:37 -05:00
bunnei
57d3544f96 thread: Keep track of the initially created handle.
This is kinda crufty, but we need it for now to update guest state variables.
2017-12-31 17:23:36 -05:00
bunnei
10022dc332 errors: Define missing kernel error codes. 2017-12-31 15:59:00 -05:00
bunnei
3af6ad6bb9 svc: Implement svcUnmapMemory. 2017-12-31 15:22:49 -05:00
bunnei
3fc608b040 thread: Main thread should set thread handle to reg 1. 2017-12-30 12:10:58 -05:00
bunnei
da4bd90980 thread: Remove THUMB mode flag. 2017-12-30 12:08:26 -05:00
bunnei
d8a3de102e thread: Main thread should be ready by default, all others dormant. 2017-12-30 12:05:10 -05:00
bunnei
78531342a4 kernel: Various 64-bit fixes in memory/process/thread 2017-12-29 13:27:58 -05:00