Subv
b5bfaaae29
HLE/FS: Use the SessionData parameter of ServiceFramework in the File class.
2017-12-14 18:24:03 -05:00
Subv
daecd812b0
HLE/Services: Allow specifying a SessionData template parameter to ServiceFramework.
...
Some services can have multiple clients at the same time, and they identify the different clients using the server session as a key.
This parameter (if present) should be a structure that contains the per-session data for each service.
The data can be retrieved using ServiceFramework::GetSessionData(session)
2017-12-14 18:24:02 -05:00
Sebastian Valle
6afd091c37
Merge pull request #3235 from Subv/dlp3
...
HLE/FS: Implemented FSFile::OpenSubFile.
2017-12-12 17:01:18 -05:00
Subv
c9ddd5b0ae
HLE/FS: Implemented FSFile::OpenSubFile.
...
The File class now holds a list of connected sessions along with data unique to each session.
A subfile is a window into an existing file. They have a few limitations compared to normal files:
* They can't be written to.
* They can't be flushed.
* Their size can not be changed.
* New subfiles can't be created from another subfile.
2017-12-12 13:34:02 -05:00
Sebastian Valle
b4bb74a101
Merge pull request #3268 from lioncash/ipc-enum
...
ipc_helpers: Add member functions for pushing and popping strongly typed enums
2017-12-12 12:52:02 -05:00
Merry
5c802d35ef
Merge pull request #3262 from lioncash/warn
...
common/core: Silence initialization order warnings
2017-12-11 19:52:53 +00:00
Sebastian Valle
1e3113b1b2
Merge pull request #3251 from Subv/fs_numseeds
...
HLE/FS: Stubbed GetNumSeeds to always return 0 seeds.
2017-12-11 14:13:10 -05:00
Sebastian Valle
4a3d7863fa
Merge pull request #3250 from Subv/news_notifications
...
HLE/News: Stubbed GetTotalNotifications to always return 0 notifications.
2017-12-11 14:12:22 -05:00
Lioncash
91a804707b
ipc_helpers: Add member functions for pushing and popping strongly typed enums
...
Alleviates the need to static_cast to an enum type at the call sites of the Push and Pop calls.
We only allow strongly typed enums, as they have a defined type of int
by default if an underlying type isn't explicitly specified, whereas
with regular enums, if an underlying type isn't specified, an
implementation-defined type is used that can fit all the enumeration
values.
2017-12-10 23:10:00 -05:00
Lioncash
c31f932afe
common/core: Silence initialization order warnings
2017-12-10 19:50:45 -05:00
B3n30
2146311ad1
Merge pull request #3091 from Subv/hle_request_delat
...
Kernel/IPC: Add a small delay after each SyncRequest to prevent thread starvation.
2017-12-10 19:59:19 +01:00
Subv
0ac82af50f
HLE/FS: Stubbed GetNumSeeds to always return 0 seeds.
...
We don't yet implement the SEEDDB store.
This number is supposed to be modified by the AddSeed function (0x087A0180) but there's too little info about it on 3dbrew.
2017-12-10 13:08:04 -05:00
Subv
98e3872353
Kernel/IPC: Use 39 microseconds for the SendSyncRequest delay approximation.
...
As measured by the time it takes for to return when performing the SetLcdForceBlack IPC request to the GSP:GPU service in a n3DS with firmware 11.6
See https://gist.github.com/ds84182/ecdbbd25b56a29bd4e5b32a7544b8e92 for the source code of the test.
2017-12-10 13:00:05 -05:00
Sebastian Valle
c72262d7e3
Merge pull request #3246 from Steveice10/pxidev
...
HLE: Add pxi:dev stub.
2017-12-10 12:21:35 -05:00
Sebastian Valle
2859b98884
Merge pull request #3234 from Subv/dlp2
...
HLE/FS: Implemented FS::GetProgramLaunchInfo.
2017-12-10 08:58:08 -05:00
Sebastian Valle
951b023a3d
Merge pull request #3259 from lioncash/init-order
...
ac: Correct constructor initialization order
2017-12-10 08:46:11 -05:00
Yuri Kunde Schlesner
312281fd61
Merge pull request #3256 from yuriks/move-svc
...
HLE: Move svc.cpp to kernel/
2017-12-10 01:13:46 -05:00
Lioncash
bca58546b1
ac: Correct constructor initialization order
...
The parent class constructor will always run before the
class' initializers for member variables.
2017-12-09 23:48:40 -05:00
Yuri Kunde Schlesner
21188f5683
HLE: Move SVC handlers to the Kernel namespace
2017-12-09 20:32:58 -08:00
Yuri Kunde Schlesner
ad71e23f23
HLE: Move svc.{cpp,h} to kernel/
2017-12-09 18:10:47 -08:00
Subv
7d038b9bd8
HLE/FS: Implemented FS::GetProgramLaunchInfo.
...
This function is used by the DLP system module during the DLPSRVR initialization.
2017-12-09 18:46:34 -05:00
Dragios
8b864a74e9
Add new AppID (eShop)
2017-12-10 07:38:56 +08:00
Dragios
ebb731b9a1
Fill up the rest of Applet IDs
2017-12-10 07:38:23 +08:00
Steveice10
16b26e73c9
HLE: Add pxi:dev stub.
2017-12-09 14:45:56 -08:00
Subv
dd0bd5520d
HLE/News: Stubbed GetTotalNotifications to always return 0 notifications.
...
This prevents an invalid read loop on games that call it.
2017-12-09 11:28:57 -05:00
wwylele
5026480b36
svc: correct GetProcessInfo(20)
2017-12-08 21:28:48 +02:00
Sebastian Valle
69caf8c5dc
Merge pull request #3236 from Tilka/block_name
...
cfg: refer to ConsoleModelBlockID by name
2017-12-08 09:01:22 -05:00
Tillmann Karras
6752576de9
cfg: refer to ConsoleModelBlockID by name
2017-12-08 06:56:00 +00:00
Subv
e90daa6a4f
Kernel/IPC: Add a small delay after each SyncRequest to prevent thread starvation.
...
In a real 3DS, threads that call svcSyncRequest are put to sleep until the server responds via svcReplyAndReceive. Our HLE services don't implement this mechanism and are effectively immediate from the 3DS's point of view. This commit makes it so that we at least simulate the IPC delay.
Specific HLE handlers might need to put their callers to sleep for a longer period of time to simulate IO timings. This is their responsibility but doing so is currently not implemented.
See https://gist.github.com/ds84182/4a7690c5376e045cab9129ca4185bbeb for a test that was not passing before this commit.
2017-12-07 22:40:15 -05:00
Lioncash
ff96c5dba0
svc: Provide names for svc 0x59 and 0x5A
...
Updated according to 3dbrew.
2017-12-07 22:14:55 -05:00
MerryMage
a9af4be363
ldr_ro: Use ranged instruction cache invalidation
2017-12-06 20:59:09 +00:00
Sebastian Valle
4b1253b51a
Merge pull request #3226 from Subv/arbiter_timeout
...
HLE/AddressArbiter: Remove threads that were awoken by timeout from an Arbiter's waitlist
2017-12-06 12:11:23 -05:00
Subv
8c16b90eae
HLE/AddressArbiter: Remove threads that were awoken by timeout from the arbiter's waitlist when using WaitIfLessThanWithTimeout and DecrementAndWaitIfLessThanWithTimeout.
...
Fixes a regression introduced in #3096
2017-12-06 09:06:45 -05:00
B3n30
b9db9af9e8
fixup! Applet: Print unknown AppletId on ASSERT
2017-12-06 13:52:21 +01:00
B3n30
ddc59e3881
Applet: Print unknown AppletId on ASSERT
2017-12-06 12:41:46 +01:00
wwylele
6050d000fa
fs: correct header code; remove dead code
2017-12-05 16:34:01 +02:00
Yuri Kunde Schlesner
9f806384f5
Merge pull request #3190 from Subv/errf_srv_framework
...
HLE/Services: Convert err:f to the new ServiceFramework.
2017-12-05 00:49:44 -05:00
bunnei
56db8e0858
Merge pull request #3173 from shinyquagsire23/nfc-o3ds-stub
...
Services/NFC: Stub StartTagScanning as it should be for o3DS
2017-12-04 16:11:54 -05:00
Subv
30bffb1964
HLE/Services: Convert err:f to the new ServiceFramework.
2017-12-04 14:03:11 -05:00
B3n30
3249187ad6
Merge pull request #3181 from wwylele/ipc-handle-split
...
ipc_helper: split PushMoveObjects and PushCopyObjects
2017-12-04 18:49:42 +01:00
wwylele
fda023c9fa
ipc_helper: split PushMoveObjects and PushCopyObjects
2017-12-04 19:46:44 +02:00
wwylele
ff00cb391a
service/ptm: add missing % in logging
2017-12-03 11:52:42 +02:00
Weiyi Wang
2664042325
Merge pull request #3086 from Subv/swkbd_launch
...
HLE/APT: Allow launching native applets instead of HLE ones.
2017-12-03 11:38:29 +02:00
Weiyi Wang
14819d0b84
Merge pull request #3138 from wwylele/ipc-mapped-buffer
...
Kernel/IPC: Implement MappedBuffer translation for HLE services that use the HLERequestContext architecture.
2017-12-03 11:33:48 +02:00
wwylele
a79a8d17fa
FS: transform File to ServiceFramework
2017-12-03 00:05:20 +02:00
wwylele
cef6b15de4
IPC Helpers: Implement MappedBuffer translation helper for new interface
2017-12-03 00:05:20 +02:00
wwylele
3ecf650bf9
Kernel/IPC: Implement MappedBuffer translation for HLE services that use the HLERequestContext architecture.
2017-12-03 00:05:20 +02:00
shinyquagsire23
5ad4cf619e
Services/NFC: Stub StartTagScanning as it should be for o3DS
2017-12-01 12:42:23 -07:00
Lioncash
89f67ad90f
services: Silence warnings related to logging
2017-11-29 18:59:54 -05:00
bunnei
b2a99043e3
Merge pull request #2968 from Subv/hle_thread_pause
...
Kernel/Threads: Add a new thread status that will allow using a Kernel::Event to put a guest thread to sleep inside an HLE handler until said event is signaled
2017-11-29 10:45:48 -05:00