Commit Graph

127 Commits (9ce11b2d925b08352f9349ecbf228431581331f4)

Author SHA1 Message Date
Lioncash cfc0ee9c60 kernel: Remove unused log arguments 11 years ago
Yuri Kunde Schlesner 0600e2d8b5 Convert old logging calls to new logging macros 11 years ago
bunnei 3a75c8069e Merge pull request #256 from Subv/mutex
Kernel/Mutex: Properly lock the mutex when a thread enters it
11 years ago
bunnei dd203f7068 Thread: Fixed to wait on address when in arbitration. 11 years ago
archshift 20d2ed0950 Make OpenDirectory fail if the directory doesn't exist
This is in line with what the hardware itself does.

It does this by splitting the initial directory opening into Directory.Open(), which will return false if a stat fails.
Then, Archive::OpenDirectory will return nullptr, and archive.cpp will return an error code .
11 years ago
Subv bc318c464b Mutex: Remove some forward declarations
Moved Mutex::WaitSynchronization to the end of the file.
11 years ago
Subv 64128aa61a Mutex: Release all held mutexes when a thread exits. 11 years ago
Subv e3c8e4901c Mutex: Properly lock the mutex when a thread enters it
Also resume only the next immediate thread waiting for the mutex when it is released, instead of resuming them all.
11 years ago
bunnei 17fae11fc7 Merge pull request #250 from Subv/cbranch_2
SVC: Implemented GetThreadId.
11 years ago
bunnei 5056329a80 Merge pull request #222 from archshift/renamexyz
Implemented RenameFile and RenameDirectory in FS:USER
11 years ago
Subv 6fac2bf0ab Threads: Remove a redundant function.
Use the next_thread_id variable directly.
11 years ago
Subv ef1d5cda06 Threads: Implemented a sequential thread id 11 years ago
archshift 139a4d91d9 Updated archive.cpp functions for proper error handling 11 years ago
Subv 029ff9f1fd SVC: Implemented GetThreadId.
For now threads are using their Handle value as their Id, it should not really cause any problems because Handle values are unique in Citra, but it should be changed. I left a ToDo there because this is not correct behavior as per hardware.
11 years ago
Lioncash 208598dbe2 kernel: Shorten GetCount 11 years ago
Lioncash 9b68d5e074 kernel: Make some functions const 11 years ago
bunnei e3d1ffff4b Merge pull request #225 from bunnei/fix-release-mutex
Mutex: Changed behavior to always release mutex for all threads.
11 years ago
bunnei de851ba1a1 Thread: Check that thread is actually in "wait state" when verifying wait. 11 years ago
bunnei a449e0e11a Mutex: Changed behavior to always release mutex for all threads. 11 years ago
archshift e5ff01c2cd Implemented RenameDirectory in FS:USER 11 years ago
archshift 45afc15aa6 Implemented RenameFile in FS:USER 11 years ago
Yuri Kunde Schlesner 8189593255 Use pointers instead of passing handles around in some functions. 11 years ago
Yuri Kunde Schlesner 22c86824a4 Remove duplicated docs/update them for changed parameters. 11 years ago
Yuri Kunde Schlesner c2588403c0 HLE: Revamp error handling throrough the HLE code
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.
11 years ago
bunnei ef1b16a7eb Merge pull request #191 from archshift/deletexyz
Added DeleteFile and DeleteDirectory functions to FS:USER and the archives.
11 years ago
archshift 8aeadbd95a Added DeleteFile and DeleteDirectory functions to FS:USER and the archives. 11 years ago
bunnei c0cd0fa78e Merge pull request #211 from linkmauve/master
Remove trailing spaces from the entire project
11 years ago
bunnei 112768f436 Merge pull request #208 from lioncash/statics
Add static to some variables
11 years ago
Emmanuel Gil Peyrot f5d38649c7 Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated 11 years ago
Lioncash 7cbecde2ca Add static to some variables 11 years ago
Lioncash 1a8f466217 Remove extraneous semicolons 11 years ago
bunnei 11641b5e79 Archive: Fixed to not destroy archive handle on close. 11 years ago
bunnei bcb0dbf7e1 Archive: Fixed close archive before freeing. 11 years ago
bunnei 3e09c07378 FS_User: Support FileSye::Path in a more generic way.
added a todo to kernel archive
11 years ago
bunnei a3107a6b57 FileSys: Updated backend code to use FileSys::Path instead of string for paths. 11 years ago
Lioncash ac58b76e71 Fix two format strings. 11 years ago
archshift 04c90c395d Added CreateDirectory function to service/fs.cpp, and in Archive. 11 years ago
Sean 9a012ff007 Fix some warnings 11 years ago
Yuri Kunde Schlesner d72708c1f5 Add `override` keyword through the code.
This was automated using `clang-modernize`.
11 years ago
Emmanuel Gil Peyrot 0be5c03176 FileSys: split the constructor into an Open method, in order to notify the opener something went wrong.
Kernel: Return an invalid handle to OpenFile when it failed to open.
11 years ago
Emmanuel Gil Peyrot 23c2fbfc7a FileSys/Kernel: Implement SetSize service call for File objects. 11 years ago
archshift 1966f7b0ad Use the citra user path for the sdmc directory 11 years ago
Emmanuel Gil Peyrot 3a570a9fee Kernel: Implement the Close command for Archive, File and Directory. 11 years ago
Emmanuel Gil Peyrot c197ce2180 Kernel: Add a Directory object and a getter for it from an Archive object. 11 years ago
Emmanuel Gil Peyrot 19d04f3abe Kernel: Add a File object and a getter for it from an Archive object. 11 years ago
Lioncash 741321ac24 Core: Get rid of unnecessary switch statement in Kernel 11 years ago
archshift 6e606c515f core: Prune redundant includes 11 years ago
bunnei 304999dfeb Threading: Fix thread starting to execute first instruction correctly. 11 years ago
archshift 4c4a01bf41 Added FS functions to Archive and Archive_RomFS 11 years ago
Lioncash ab4648d3ca Core: Use std::array for managing kernel object space
These avoid relying on memset for clearing the arrays.
11 years ago