dc4fe2fbd5
svc: Fix string formatting for CreateThread.
2018-01-01 15:48:08 -05:00
9e8608e8b1
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
aa7c824ea4
svc: Implement svcExitProcess.
2018-01-01 14:38:34 -05:00
9b8afed5f7
svc: Implement svcUnlockMutex.
2018-01-01 14:04:36 -05:00
b9950cd4b0
svc: Implement svcLockMutex.
2018-01-01 14:02:26 -05:00
1cb978eb82
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
45debfe4fd
svc: Implement svcExitThread.
2017-12-31 16:11:27 -05:00
9d0c3bda7f
svc: Implement svcCreateThread.
2017-12-31 16:10:01 -05:00
001091fa72
svc: Cleanup svcGetThreadPriority.
2017-12-31 16:06:11 -05:00
283c63645d
svc: Stub out svcGetCurrentProcessorNumber.
2017-12-31 16:01:04 -05:00
8a7f8f3e2c
svc: Implement svcSetThreadPriority.
2017-12-31 15:58:16 -05:00
960e8dc5e5
svc: Change SignalProcessWideKey to a stub.
2017-12-31 15:55:11 -05:00
3a91a62b8f
svc: Implement svcUnmapMemory.
2017-12-31 15:22:49 -05:00
a3228d9b77
svc: Minor cleanups.
2017-12-30 13:40:28 -05:00
8ab33616ac
svc: Implement svcStartThread.
2017-12-30 13:37:07 -05:00
834fa5db65
kernel: Add SyncObject primitive, use it for ClientSession.
2017-12-28 23:12:28 -05:00
6e021f22b8
svc: Implement MapMemory.
2017-12-28 21:38:38 -05:00
7618b5237d
svc: Implement SetHeapSize.
2017-12-28 15:29:52 -05:00
266c1c8020
svc: Implement GetThreadId and GetProcessId.
2017-10-23 00:15:45 -04:00
dcd6bb82f7
hle: Fix QueryMemory response for MemoryInfo.
2017-10-19 23:00:46 -04:00
960a1416de
hle: Initial implementation of NX service framework and IPC.
2017-10-14 22:18:42 -04:00
78bc2b70bb
svc: Some logging cleanup.
2017-10-14 17:35:21 -04:00
cb889f9220
svc: Initial nx impl. for QueryMemory, ConnectToPort, SendSyncRequest, etc.
2017-10-14 17:30:07 -04:00
56d718b2a1
Merge pull request #2793 from Subv/replyandreceive
...
Kernel/SVC: Partially implemented svcReplyAndReceive
2017-06-29 17:05:22 -05:00
b53fa9514f
Kernel/SVC: Pass the current thread as a parameter to ClientSession::SendSyncRequest.
2017-06-29 12:30:34 -05:00
88c93a7436
Kernel/SVC: Partially implemented svcReplyAndReceive.
...
It behaves mostly as WaitSynchronizationN with wait_all = false, except for IPC buffer translation.
The target thread of an IPC response will now wake up when responding.
IPC buffer translation is currently not implemented.
Error passing back to svcSendSyncRequest is currently not implemented.
2017-06-25 23:38:28 -05:00
e192d417ec
Kernel: Implement AcceptSession SVC
2017-06-23 11:26:37 -07:00
aa0f3047d3
Kernel: Implement CreateSessionToPort SVC
2017-06-23 11:22:02 -07:00
f94093d0fd
Kernel: Implement CreateSession SVC
2017-06-22 00:39:27 -07:00
be031989ee
Kernel: Move HandleTable to a separate file
2017-05-29 17:34:39 -07:00
64ecf81a3c
Kernel: Move WaitObject to a separate file
...
Now that HandleTable doesn't directly depend on WaitObject anymore, this
can be separated from the main kernel.h header.
2017-05-29 16:16:46 -07:00
9453223075
Kernel: Removed HandleTable::GetWaitObject
...
This isn't necessary anymore since plain Get works correctly for
WaitObjects.
2017-05-29 15:10:06 -07:00
2cdb40d709
Kernel: Centralize error definitions in errors.h
2017-05-24 21:06:00 -07:00
6577bbc3c5
Remove ability to load symbol maps
...
This was now mostly unused except by thread creation, which used a
symbol of the entrypoint, if available, to name the thread.
2017-05-07 15:33:07 -07:00
31f9c1ab5d
Fix OutputDebugString syscall
2017-04-01 04:09:39 -05:00
b5dbc6cb98
Refined thread launch on syscore error messages
2017-03-09 08:18:18 -05:00
0be77c3ae4
Timers: Return an error when calling SetTimer with negative timeouts.
2017-02-21 20:51:56 -05:00
1ddff14511
Threads: Check the process' resource limit for the max allowed priority when creating a thread and remove the priority clamping code.
2017-01-11 16:38:05 -05:00
f2f2572fed
Thread: Added priority range checking to svcSetThreadPriority and removed priority clamping code from Thread::SetPriority.
2017-01-11 16:38:04 -05:00
b5eac78b43
Merge pull request #2410 from Subv/sleepthread
...
Don't yield execution in SleepThread(0) if there are no available threads to run
2017-01-06 22:01:33 -05:00
f0199a17f6
Kernel: Fix SharedMemory objects always returning error when addr = 0 ( #2404 )
...
Closes #2400
2017-01-06 08:21:22 -05:00
fc2266130b
Kernel: Don't attempt to yield execution in SleepThread(0) if there are no available threads to run.
...
With this we avoid an useless temporary deschedule of the current thread.
2017-01-05 19:11:34 -05:00
fd95b6ee26
Kernel: Remove Thread::wait_objects_index and use wait_objects to hold all the objects that a thread is waiting on.
2017-01-05 09:40:14 -05:00
cef5f45de2
Kernel: Use different thread statuses when a thread calls WaitSynchronization1 and WaitSynchronizationN with wait_all = true.
...
This commit removes the overly general THREADSTATUS_WAIT_SYNCH and replaces it with two more granular statuses:
THREADSTATUS_WAIT_SYNCH_ANY when a thread waits on objects via WaitSynchronization1 or WaitSynchronizationN with wait_all = false.
THREADSTATUS_WAIT_SYNCH_ALL when a thread waits on objects via WaitSynchronizationN with wait_all = true.
2017-01-04 15:58:50 -05:00
d3ff5b91e1
Kernel/Mutex: Propagate thread priority changes to other threads inheriting the priority via mutexes
2017-01-04 15:58:48 -05:00
b6a0355568
Kernel/Mutex: Update a mutex priority when a thread stops waiting on it.
2017-01-04 15:58:47 -05:00
7abf185390
Kernel/Mutex: Implemented priority inheritance.
...
The implementation is based on reverse engineering of the 3DS's kernel.
A mutex holder's priority will be temporarily boosted to the best priority among any threads that want to acquire any of its held mutexes.
When the holder releases the mutex, it's priority will be boosted to the best priority among the threads that want to acquire any of its remaining held mutexes.
2017-01-04 15:58:46 -05:00
e6a7723f2f
Kernel: Object ShouldWait and Acquire calls now take a thread as a parameter.
...
This will be useful when implementing mutex priority inheritance.
2017-01-04 15:58:45 -05:00
38a90882a4
Kernel/Synch: Do not attempt a reschedule on every syscall.
...
Not all syscalls should cause reschedules, this commit attempts to remedy that, however, it still does not cover all cases.
2017-01-04 15:58:44 -05:00
e26fbfd1d7
core: Replace "AppCore" nomenclature with just "CPU".
2016-12-22 00:27:46 -05:00