Commit graph

1547 commits

Author SHA1 Message Date
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
d3f259cd73 IPC: Make DuplicateSession return the Domain instead of the Session if the request was made on a Domain interface. 2018-01-07 17:12:07 -05:00
Subv
f0a939c240 AppletOE: Fixed command buffer structure for ReceiveMessage. 2018-01-07 17:12:05 -05:00
Subv
b01b7eea52 IPC: Corrected some command headers in the IPC Controller interface. 2018-01-07 17:12:03 -05:00
Subv
3dd00433fe IPC: Corrected some command header sizes in appletOE. 2018-01-07 17:12:01 -05:00
Subv
f262afb38a IPC: Take the number of domain objects as a parameter in MakeBuilder. 2018-01-07 17:11:58 -05:00
Subv
ed8e7b90cd SM: Fixed connecting to services with an 8-byte name, like appletOE. 2018-01-07 17:11:56 -05:00
Subv
7d966999d4 IPC: Fixed pushing ResultCodes into the command buffer.
They should have 32 bits of padding after the error code now.
2018-01-07 17:11:54 -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
718c77f373 lm: Assert on unsupported multi-message. 2018-01-06 14:41:56 -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
1941e021bc lm: Improve Log() to format a useful string. 2018-01-05 00:45:13 -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
7d16a38e06 pctl: Remove duplicate InstallInterfaces function. 2018-01-02 20:41:20 -05:00
bunnei
b328c577ef hle: Move SVC code to kernel namespace. 2018-01-02 20:40:30 -05:00
bunnei
add5ad40ad svc: Improve svcGetInfo. 2018-01-01 16:01:06 -05:00
bunnei
6a6de01d43 vm_manager: Stub out a bunch of interfaces used by svcGetInfo. 2018-01-01 15:59:31 -05:00
bunnei
7a96dfa16f svc: Fix string formatting for CreateThread. 2018-01-01 15:48:08 -05:00
bunnei
4728cc141a core/video_core: Fix a bunch of u64 -> u32 warnings. 2018-01-01 15:40:35 -05:00
bunnei
082be53aab svc: Stub out svcWaitSynchronization.
- This does not matter until we implement other kernel objects, mutexes use svcLockMutex for waiting.
2018-01-01 14:47:57 -05:00
bunnei
37d55a0317 svc: Implement svcExitProcess. 2018-01-01 14:38:34 -05:00
bunnei
aec03c0e73 svc: Implement svcUnlockMutex. 2018-01-01 14:04:36 -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
a373ba43e4 svc: Implement svcExitThread. 2017-12-31 16:11:27 -05:00
bunnei
c943ab553f svc: Implement svcCreateThread. 2017-12-31 16:10:01 -05:00
bunnei
753ab82242 svc: Cleanup svcGetThreadPriority. 2017-12-31 16:06:11 -05:00
bunnei
647243bd78 svc: Stub out svcGetCurrentProcessorNumber. 2017-12-31 16:01:04 -05:00
bunnei
10022dc332 errors: Define missing kernel error codes. 2017-12-31 15:59:00 -05:00
bunnei
8c14a2704d svc: Implement svcSetThreadPriority. 2017-12-31 15:58:16 -05:00
bunnei
4564526c43 svc: Change SignalProcessWideKey to a stub. 2017-12-31 15:55:11 -05:00