aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/result.h
AgeCommit message (Collapse)Author
2018-05-23Add & correct some error modulesgreggameplayer
2018-05-19Add and correct some Error Modules (#444)greggameplayer
* Add and correct some Error Modules
2018-03-28result: Check against self-assignment in ResultVal's copy assignment operatorLioncash
Avoids doing work that doesn't need to be done.
2018-02-27ResultCode: Mark any error code that isn't 0 as an error.Subv
2018-01-21fsp_srv: Various improvements to IStorage:Read implementation.bunnei
2017-10-31hle: Use Switch formatted result codes.bunnei
2017-06-18ResultVal: Remove MoveFrom()Yuri Kunde Schlesner
Replace it with std::move(result_val).Unwrap(), or Foo().Unwrap() in case you already have an rvalue.
2017-06-18ResultVal: Add an rvalue overload of Unwrap()Yuri Kunde Schlesner
2017-06-06ResultVal: Add more convenience utils for creating and cascading resultsYuri Kunde Schlesner
2017-05-24Kernel: Centralize error definitions in errors.hYuri Kunde Schlesner
2017-05-24GSP_GPU: Move error codes from result.h to local fileYuri Kunde Schlesner
2017-05-24FileSys: Move all result description to errors.hYuri Kunde Schlesner
2017-05-24result: Make error description a generic integerYuri Kunde Schlesner
It is now known that result code description vary depending on the module, and so they're best defined on a per-module basis. To support this, allow passing in an arbitrary integer instead of limiting to the ones in the ErrorDescription enum. These will be gradually migrated to their individual users, but a few will be kept as "common" codes shared by all modules.
2017-05-24Make BitField and ResultCode constexpr-initializableYuri Kunde Schlesner
2017-05-15Kernel: Use a Session object to keep track of the status of a Client/Server ↵Subv
session pair. Reduce the associated port's connection count when a ServerSession is destroyed.
2017-02-13file_sys: add Self NCCH archivewwylele
2016-12-14Merge pull request #2249 from Subv/sessions_v3Yuri Kunde Schlesner
Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
2016-12-05Return an error code when connecting to a saturated port.Subv
The error code was taken from the 3DS kernel.
2016-11-29FileSys: Implement OtherSaveDatawwylele
2016-11-19FileSys: add SDMCWriteOnlyArchivewwylele
2016-11-19FileSys: add ExtSaveDataArchivewwylele
ExtSaveData is more similar to SaveData, so let it be a subclass of SaveData
2016-11-19FileSys: add SaveDataArchivewwylele
The error checking of SaveDataArchive is completely different from DiskArchive, so it has to be a new class instead of a subclass of DiskArchive.
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-18Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot
2016-07-05Fix the errorcode of archive handleJamePeng
2016-06-30Result: fix and update ErrorModulewwylele
2016-06-01gsp::gpu: Reset g_thread_id in UnregisterInterruptRelayQueuemailwl
2016-05-12Kernel: Implemented shared memory permissions.Subv
2016-04-30VideoCore: Run include-what-you-use and fix most includes.Emmanuel Gil Peyrot
2016-04-27DSP_DSP: Add return IPC headersMerryMage
2016-03-30GSP: Return proper error codes for register writespurpasmart96
2016-03-20HLE/FS: Implemented GetFormatInfoSubv
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-20HLE/FS: Return the proper error codes on file Read/Write operations.Subv
These operations are limited by the open flags specified while opening the file.
2016-03-20HLE/FS: Corrected the error codes for CreateFileSubv
2016-03-05core: Use unrestricted union to hold storage of ResultVal valueYuri Kunde Schlesner
2016-02-12BitField: Make trivially copyable and remove assignment operatorMerryMage
2016-01-14HLE/SVC: Implement UnmapMemoryBlock.Subv
This implementation will need to be (almost completely) changed when we implement multiprocess support.
2015-06-28Common: Cleanup key_map includes.Emmanuel Gil Peyrot
2015-05-07Common: Remove common.hYuri Kunde Schlesner
2015-02-27result: Make comparison operators take referencesLioncash
It's unnecessary to make copies for simple comparisons like this.
2015-02-18Convert a few C stdlib asserts to Citra's own assertsarchshift
2015-02-10Asserts: break/crash program, fit to style guide; log.h->assert.harchshift
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time) As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing) Also removed some GEKKO cruft.
2015-02-10ResultVal: Fixed compilation when reassigning a ResultVal.Subv
2015-01-30Remove result.h InvalidHandleYuri Kunde Schlesner
It was only being used in two places, where it was replaced by a local constant.
2015-01-30Additions to ResultVal to make it more convenient to use.Yuri Kunde Schlesner
2015-01-10Logging: Log all called service functions (under trace). Compile out all ↵archshift
trace logs under release for performance.
2014-12-20License changepurpasmart96
2014-12-17Filesystem/Archives: Implemented the SaveData archiveSubv
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-11-24HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner
All service calls in the CTR OS return result codes indicating the success or failure of the call. Previous to this commit, Citra's HLE emulation of services and the kernel universally either ignored errors or returned dummy -1 error codes. This commit makes an initial effort to provide an infrastructure for error reporting and propagation which can be use going forward to make HLE calls accurately return errors as the original system. A few parts of the code have been updated to use the new system where applicable. One part of this effort is the definition of the `ResultCode` type, which provides facilities for constructing and parsing error codes in the structured format used by the CTR. The `ResultVal` type builds on `ResultCode` by providing a container for values returned by function that can report errors. It enforces that correct error checking will be done on function returns by preventing the use of the return value if the function returned an error code. Currently this change is mostly internal since errors are still suppressed on the ARM<->HLE border, as a temporary compatibility hack. As functionality is implemented and tested this hack can be eventually removed.