bunnei
b055ea2699
arm: Remove SkyEye/Dyncom code that is ARMv6-only.
8 years ago
bunnei
0d63f6dc66
svc: Remove unnecessary "svc" prefix to naming scheme.
8 years ago
bunnei
b328c577ef
hle: Move SVC code to kernel namespace.
8 years ago
bunnei
add5ad40ad
svc: Improve svcGetInfo.
8 years ago
bunnei
7a96dfa16f
svc: Fix string formatting for CreateThread.
8 years ago
bunnei
082be53aab
svc: Stub out svcWaitSynchronization.
- This does not matter until we implement other kernel objects, mutexes use svcLockMutex for waiting.
8 years ago
bunnei
37d55a0317
svc: Implement svcExitProcess.
8 years ago
bunnei
aec03c0e73
svc: Implement svcUnlockMutex.
8 years ago
bunnei
16c66e09cc
svc: Implement svcLockMutex.
8 years ago
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.
8 years ago
bunnei
a373ba43e4
svc: Implement svcExitThread.
8 years ago
bunnei
c943ab553f
svc: Implement svcCreateThread.
8 years ago
bunnei
753ab82242
svc: Cleanup svcGetThreadPriority.
8 years ago
bunnei
647243bd78
svc: Stub out svcGetCurrentProcessorNumber.
8 years ago
bunnei
8c14a2704d
svc: Implement svcSetThreadPriority.
8 years ago
bunnei
4564526c43
svc: Change SignalProcessWideKey to a stub.
8 years ago
bunnei
3af6ad6bb9
svc: Implement svcUnmapMemory.
8 years ago
bunnei
f10d490c94
svc: Minor cleanups.
8 years ago
bunnei
7a612ba7dd
svc: Implement svcStartThread.
8 years ago
bunnei
8fdafee314
kernel: Add SyncObject primitive, use it for ClientSession.
8 years ago
bunnei
58cf9d847a
svc: Implement MapMemory.
8 years ago
bunnei
4678ba1e18
svc: Implement SetHeapSize.
8 years ago
bunnei
bfd01c7c71
svc: Implement GetThreadId and GetProcessId.
8 years ago
bunnei
bf69f3d1eb
hle: Fix QueryMemory response for MemoryInfo.
8 years ago
bunnei
2ea8867549
hle: Initial implementation of NX service framework and IPC.
8 years ago
bunnei
0176bad5b2
svc: Some logging cleanup.
8 years ago
bunnei
bdc3ccc8ac
svc: Initial nx impl. for QueryMemory, ConnectToPort, SendSyncRequest, etc.
8 years ago
Subv
c6304fc50e
SVC: Removed GetPointer usage in the GetResourceLimit functions.
8 years ago
Subv
62e3520792
SVC: Remove GetPointer usage in CreatePort.
8 years ago
Subv
5768c55104
SVC: Replace GetPointer usage with ReadCString in ConnectToPort.
8 years ago
Subv
f08872822c
SVC: Replace GetPointer usage with ReadBlock in OutputDebugString.
8 years ago
Subv
690b21012d
SVC: Replace GetPointer usage with Read32 in ReplyAndReceive.
8 years ago
Subv
6fd20a0595
SVC: Replace GetPointer usage with Read32 in WaitSynchronizationN.
8 years ago
Huw Pascoe
ed9e0618c9
Moved down_count to CoreTiming
8 years ago
Huw Pascoe
da1c8d1522
Fixed type conversion ambiguity
8 years ago
Subv
a0054d695e
Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken.
This change makes for a clearer (less confusing) path of execution in the scheduler, now the code to execute when a thread awakes is closer to the code that puts the thread to sleep (WaitSynch1, WaitSynchN). It also allows us to implement the special wake up behavior of ReplyAndReceive without hacking up WaitObject::WakeupAllWaitingThreads.
If savestates are desired in the future, we can change this implementation to one similar to the CoreTiming event system, where we first register the callback functions at startup and assign their identifiers to the Thread callback variable instead of directly assigning a lambda to the wake up callback variable.
8 years ago
Subv
2e78c05d91
Kernel/Thread: Allow specifying which process a thread belongs to when creating it.
Don't automatically assume that Thread::Create will only be called when the parent process is currently scheduled. This assumption will be broken when applets or system modules are loaded.
8 years ago
danzel
e16c96d587
Use recursive_mutex instead of mutex to fix #2902
8 years ago
Subv
9cf64ca2cf
Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).
This mutex is acquired in SVC::CallSVC, ie, as soon as the guest application enters the HLE kernel, and should be acquired by the aforementioned threads before modifying kernel structures.
9 years ago
Subv
4a8de6bb00
Kernel/SVC: Pass the current thread as a parameter to ClientSession::SendSyncRequest.
9 years ago
Subv
820509103c
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.
9 years ago
Yuri Kunde Schlesner
afa851d0a4
Kernel: Implement AcceptSession SVC
9 years ago
Yuri Kunde Schlesner
cf12983372
Kernel: Implement CreateSessionToPort SVC
9 years ago
Yuri Kunde Schlesner
364ef24f77
Kernel: Implement CreateSession SVC
9 years ago
Yuri Kunde Schlesner
ecfda5317e
Kernel: Move HandleTable to a separate file
9 years ago
Yuri Kunde Schlesner
6f662625d3
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.
9 years ago
Yuri Kunde Schlesner
ddbf9cec1b
Kernel: Removed HandleTable::GetWaitObject
This isn't necessary anymore since plain Get works correctly for
WaitObjects.
9 years ago
Yuri Kunde Schlesner
467545ed48
Kernel: Centralize error definitions in errors.h
9 years ago
Yuri Kunde Schlesner
88fddcbce4
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.
9 years ago
Michael Theall
775ae0634e
Fix OutputDebugString syscall
9 years ago