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
bunnei
9d04a45a90
kernel: Fix implementation of ConvertSessionToDomain.
2017-12-29 00:36:22 -05:00
bunnei
8331a996d6
kernel: Add basic support for Domain object.
2017-12-28 23:30:21 -05:00
bunnei
8fdafee314
kernel: Add SyncObject primitive, use it for ClientSession.
2017-12-28 23:12:28 -05:00
bunnei
e74563e0d0
process: Add method to mirror a memory region.
2017-12-28 21:35:49 -05:00
bunnei
1edc9cc327
service: Return proper result code for IPC::CommandType::Close.
2017-10-31 19:30:05 -04:00
bunnei
714dd3da6d
hle: Use Switch formatted result codes.
2017-10-31 19:26:11 -04:00
bunnei
bf69f3d1eb
hle: Fix QueryMemory response for MemoryInfo.
2017-10-19 23:00:46 -04:00
bunnei
a636b779e7
hle_ipc: Only copy necessary fields for outgoing command buffer.
2017-10-18 21:39:48 -04:00
bunnei
f599769c3c
hle_ipc: Parse out buffer X/A/B/B descriptors from incoming command buffer.
2017-10-18 21:38:01 -04:00
bunnei
be299c7636
hle: Implement ConvertSessionToDomain, various cleanups.
2017-10-15 01:24:22 -04:00
bunnei
2ea8867549
hle: Initial implementation of NX service framework and IPC.
2017-10-14 22:18:42 -04:00
bunnei
775cf60729
Merge remote-tracking branch 'upstream/master' into nx
...
# Conflicts:
# src/core/CMakeLists.txt
# src/core/arm/dynarmic/arm_dynarmic.cpp
# src/core/arm/dyncom/arm_dyncom.cpp
# src/core/hle/kernel/process.cpp
# src/core/hle/kernel/thread.cpp
# src/core/hle/kernel/thread.h
# src/core/hle/kernel/vm_manager.cpp
# src/core/loader/3dsx.cpp
# src/core/loader/elf.cpp
# src/core/loader/ncch.cpp
# src/core/memory.cpp
# src/core/memory.h
# src/core/memory_setup.h
2017-10-09 23:56:20 -04:00
bunnei
e36ccd5ff1
loader: Various improvements for NSO/NRO loaders.
2017-10-09 21:39:32 -04:00
bunnei
14389f5d6d
Merge pull request #2977 from Subv/shmem_create
...
SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it
2017-10-03 16:21:49 -04:00
Subv
25a5ce9e75
Kernel/SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it.
...
Also reference the right offset into the backing block for the requested address.
2017-10-02 15:16:16 -05:00