Commit graph

48 commits

Author SHA1 Message Date
Yuri Kunde Schlesner
8a35f3634e Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSession
This allows attaching a HLE handle to a ServerPort at any point after it
is created, allowing port/session creation to be generic between HLE and
regular services.
2017-06-06 02:56:32 -07:00
Yuri Kunde Schlesner
41a3feea66 HLE: Move SessionRequestHandler from Service:: to Kernel::
Most of the code that works with this is or will be in the kernel, so
it's a more appropriate place for it to be.
2017-06-05 23:40:11 -07:00
wwylele
05a989965a loader: use self NCCH archive 2017-02-13 13:57:38 +02:00
bunnei
1fd7cfb69e Address clang-format issues. 2016-12-21 23:48:14 -05:00
bunnei
5d22844f3e core: Remove HLE module, consolidate code & various cleanups. 2016-12-21 23:48:13 -05:00
Yuri Kunde Schlesner
c99b5e3122 Merge pull request #2249 from Subv/sessions_v3
Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
2016-12-14 20:35:33 -08:00
Subv
3e80a1a1c1 Fixed the codestyle to match our clang-format rules. 2016-12-14 12:45:36 -05:00
Subv
6df6ad46c4 Moved the HLE command buffer translation task to ServerSession instead of the HLE handler superclass. 2016-12-09 12:52:12 -05:00
Subv
021e732815 Use std::move where appropriate. 2016-12-08 11:06:19 -05:00
Subv
708ece3fff Split SessionRequestHandler::HandleSyncRequest into HandleSyncRequest, TranslateRequest and HandleSyncRequestImpl.
HandleSyncRequest now takes care of calling the command buffer translate function before actually invoking the command handler for HLE services.
2016-12-05 12:05:00 -05:00
Subv
4f2326c8a9 A bit of a redesign.
Sessions and Ports are now detached from each other.
HLE services are handled by means of a SessionRequestHandler class, Interface now inherits from this class.
The File and Directory classes are no longer kernel objects, but SessionRequestHandlers instead, bound to a ServerSession when requested.
File::OpenLinkFile now creates a new session pair and binds the File instance to it.
2016-11-30 23:12:35 -05:00
Subv
302ef594a6 Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
All handles obtained via srv::GetServiceHandle or svcConnectToPort are references to ClientSessions.
Service modules will wait on the counterpart of those ClientSessions (Called ServerSessions) using svcReplyAndReceive or svcWaitSynchronization[1|N], and will be awoken when a SyncRequest is performed.

HLE Interfaces are now ClientPorts which override the HandleSyncRequest virtual member function to perform command handling immediately.
2016-11-30 23:02:05 -05:00
wwylele
1e4a1598fd FileSys: Implement OtherSaveData 2016-11-29 23:50:00 +02:00
wwylele
e6de484ec3 FS: add missing MediaType 2016-11-29 23:50:00 +02:00
wwylele
01964d37fb FileSys: rename SaveDataCheck archive to NCCH archive
According to the observation from game and 3dbrew "Used for accessing general NCCH data"
2016-11-19 18:55:35 +02:00
wwylele
b2fa64ec75 fs: implement DeleteDirectoryRecursively 2016-10-02 11:29:16 +08:00
Emmanuel Gil Peyrot
1138ec0d49 Remove empty newlines in #include blocks.
This makes clang-format useful on those.

Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
2016-09-21 11:15:47 +09:00
Emmanuel Gil Peyrot
628ed4376a Sources: Run clang-format on everything. 2016-09-18 09:38:01 +09:00
wwylele
5489701b38 Service::CFG/FS: add and refactor out utilities for front-end 2016-07-03 08:23:59 +03:00
Subv
438f0cb335 HLE/FS: Corrected some style concerns. 2016-03-20 14:52:26 -05:00
Subv
9773d90363 HLE/FS: Implemented GetFormatInfo
Format information is currently only implemented for the ExtSaveData, SharedExtSaveData and SaveData archives, the information is stored in a file alongside the root folder of the archive.
2016-03-20 14:30:01 -05:00
Subv
3c9508c468 HLE/FS: FS::CreateFile takes an u64 for the file size. 2016-03-20 14:28:08 -05:00
archshift
5da25ae7d0 Implement FS_User::GetFreeBytes 2015-10-27 23:33:59 -07:00
Lioncash
54fa043c92 General: Fix up doxygen comments 2015-09-10 11:20:21 -04:00
Emmanuel Gil Peyrot
e5fcabdd69 Core: Cleanup file_sys includes. 2015-06-28 00:36:54 +01:00
Subv
66c1db7288 ExtSavedata: Save the icon passed to CreateExtSaveData to the correct folder.
Organize the ExtSaveData folders as they are stored in the console.
2015-06-01 21:48:19 -05:00
Yuri Kunde Schlesner
6f89d25f90 FileSys: Clean-up includes, de-inline destructors 2015-05-06 23:45:06 -03:00
Subv
1d61cd4460 Services/FS: Implemented DeleteExtSaveData, CreateSystemSaveData and DeleteSystemSaveData
Also fixed a bug with CreateExtSaveData that made it unable to create ExtSaveData archives in the SDMC directory.
2015-03-14 12:00:01 -05:00
Subv
1bbf0567b1 Archives: Made the Format function more generic. 2015-02-10 13:43:46 -02:00
Subv
071663e074 Archives: Expose the File and Directory classes to HLE 2015-02-10 13:43:45 -02:00
Yuri Kunde Schlesner
3f1a3952d7 FS: Allow multiple instances of the same archive type to be open at once 2015-02-10 13:43:44 -02:00
Yuri Kunde Schlesner
5e91fc0d1a Filesys: Move creation of Handles for File/Directory to service handlers 2015-02-02 15:36:58 -02:00
Subv
c2e9990149 Services: Stubbed more services.
Implemented FSUser::CreateExtSaveData
2015-01-24 15:44:40 -05:00
Lioncash
a3f5e5605c core: Fix a few docstrings 2015-01-20 13:52:44 -05:00
Subv
90dffe3fc1 Archives: Make SYSTEM_ID and SDCARD_ID strings 2015-01-04 09:10:27 -05:00
Subv
71a063f45c Archives: Changed the way paths are built for the archives.
Each archive now takes a mount point of either NAND or SDMC, and builds its own directory structure there, trying to simulate an HLE-friendly hardware layout
2015-01-03 20:46:05 -05:00
Subv
aade417b14 Archives: Reduced duplicate code in RomFS and SaveCheck.
Fixed a few warnings and cleaned up the code
2015-01-02 21:13:54 -05:00
Subv
13efbdc201 SaveDataCheck: Preliminary work in this archive.
This allows Steel Diver to boot further, some files are needed.

This is still not ready and needs a big cleanup, this will possibly be delayed until the way we handle archives is fixed (with factory classes instead of ahead-of-time creation of archives)
2015-01-02 21:13:53 -05:00
Subv
2c89d4d5cd Archives: Implemented ExtSaveData and SharedExtSaveData
They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively.
Also redirect some APT_A functions to their APT_U equivalents.
Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module.
Implemented formatting the savegame.
Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded.
2014-12-29 22:29:55 -05:00
bunnei
0de6a08d75 Merge pull request #291 from purpasmart96/license
License change
2014-12-21 16:05:44 -05:00
archshift
0625dd09ea Added CreateFile to the FS_USER service
Tested with hwtests.
2014-12-21 02:21:49 -03:00
purpasmart96
ebfd831ccb License change 2014-12-20 21:20:24 -08:00
Subv
ea9ce0fba7 Filesystem/Archives: Implemented the SaveData archive
The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information

Got rid of the code duplication in File and Directory

Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive.

FS_U: Use the correct error code when a file wasn't found
2014-12-17 19:21:38 -05:00
Yuri Kunde Schlesner
83e6e4ffec FS.Archive: Clean up treatment of archives and their handles
- Refactor FS::Archive internals to make Archive creation and lifetime
  management clearer.
- Remove the "Archive as a File" hack.
- Implement 64-bit Archive handles.
2014-12-16 01:08:44 -02:00
Yuri Kunde Schlesner
82fe821e87 Service.FS: Rename FileSys::Archive to ArchiveBackend 2014-12-16 01:08:42 -02:00
Yuri Kunde Schlesner
f6153679b0 Service.FS: Do archive registration using IdCode instead of name 2014-12-16 01:08:42 -02:00
Yuri Kunde Schlesner
ca67bb7945 HLE: Rename namespaces to match move & fix initialization order 2014-12-16 01:08:38 -02:00
Yuri Kunde Schlesner
c72ccfa6db HLE: Move kernel/archive.* to service/fs/ 2014-12-16 01:08:14 -02:00
Renamed from src/core/hle/kernel/archive.h (Browse further)