aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
AgeCommit message (Collapse)Author
2014-12-28Kernel: New handle managerYuri Kunde Schlesner
This handle manager more closely mirrors the behaviour of the CTR-OS one. In addition object ref-counts and support for DuplicateHandle have been added. Note that support for DuplicateHandle is still experimental, since parts of the kernel still use Handles internally, which will likely cause troubles if two different handles to the same object are used to e.g. wait on a synchronization primitive.
2014-12-28Kernel: Replace GetStaticHandleType by HANDLE_TYPE constantsYuri Kunde Schlesner
2014-12-28Rename ObjectPool to HandleTableYuri Kunde Schlesner
2014-12-21Merge pull request #291 from purpasmart96/licensebunnei
License change
2014-12-20License changepurpasmart96
2014-12-20Thread: Wait current thread on svc_SleepThreadbunnei
- Removed unused VBLANK sleep mode - Added error log for bad context switch - Renamed VerifyWait to CheckWaitType to be more clear
2014-12-20Merge pull request #316 from yuriks/thread-handlebunnei
Kernel: Implement support for current thread pseudo-handle
2014-12-20Clean up some warningsChin
2014-12-20Kernel: Implement support for current thread pseudo-handleYuri Kunde Schlesner
This boots a few (mostly Nintendo 1st party) games further.
2014-12-17Merge pull request #185 from purpasmart96/mem_permbunnei
Kernel: Add missing permissions
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-12-16HLE: Rename namespaces to match move & fix initialization orderYuri Kunde Schlesner
2014-12-16HLE: Move kernel/archive.* to service/fs/Yuri Kunde Schlesner
2014-12-15Remove SyncRequest from K::Object and create a new K::Session typeYuri Kunde Schlesner
This is a first step at fixing the conceptual insanity that is our handling of service and IPC calls. For now, interfaces still directly derived from Session because we don't have the infrastructure to do it properly. (That is, Processes and scheduling them.)
2014-12-13Kernel/Semaphore: Small style changeSubv
2014-12-13Kernel/Semaphores: Invert the available count checking.Subv
Same semantics, idea by @yuriks
2014-12-13Kernel/Semaphores: Addressed some issues.Subv
2014-12-13Semaphore: Removed an unneeded functionSubv
2014-12-13Semaphores: Addressed some style issuesSubv
2014-12-13Semaphore: Implemented the initial_count parameter.Subv
2014-12-13SVC: Implemented ReleaseSemaphore.Subv
This behavior was tested on hardware, however i'm still not sure what use the "initial_count" parameter has
2014-12-13SVC: Implemented svcCreateSemaphoreSubv
ToDo: Implement svcReleaseSemaphore * Some testing against hardware needed
2014-12-13kernel: Remove unused log argumentsLioncash
2014-12-13Convert old logging calls to new logging macrosYuri Kunde Schlesner
2014-12-10Merge pull request #256 from Subv/mutexbunnei
Kernel/Mutex: Properly lock the mutex when a thread enters it
2014-12-08Thread: Fixed to wait on address when in arbitration.bunnei
2014-12-07Make OpenDirectory fail if the directory doesn't existarchshift
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 .
2014-12-07Mutex: Remove some forward declarationsSubv
Moved Mutex::WaitSynchronization to the end of the file.
2014-12-07Mutex: Release all held mutexes when a thread exits.Subv
2014-12-05Mutex: Properly lock the mutex when a thread enters itSubv
Also resume only the next immediate thread waiting for the mutex when it is released, instead of resuming them all.
2014-12-04Merge pull request #250 from Subv/cbranch_2bunnei
SVC: Implemented GetThreadId.
2014-12-04Merge pull request #222 from archshift/renamexyzbunnei
Implemented RenameFile and RenameDirectory in FS:USER
2014-12-04Threads: Remove a redundant function.Subv
Use the next_thread_id variable directly.
2014-12-04Threads: Implemented a sequential thread idSubv
2014-12-03Updated archive.cpp functions for proper error handlingarchshift
2014-12-04SVC: Implemented GetThreadId.Subv
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.
2014-12-03kernel: Shorten GetCountLioncash
2014-12-03kernel: Make some functions constLioncash
2014-11-30Merge pull request #225 from bunnei/fix-release-mutexbunnei
Mutex: Changed behavior to always release mutex for all threads.
2014-11-26Thread: Check that thread is actually in "wait state" when verifying wait.bunnei
2014-11-26Mutex: Changed behavior to always release mutex for all threads.bunnei
2014-11-24Implemented RenameDirectory in FS:USERarchshift
2014-11-24Implemented RenameFile in FS:USERarchshift
2014-11-24Use pointers instead of passing handles around in some functions.Yuri Kunde Schlesner
2014-11-24Remove duplicated docs/update them for changed parameters.Yuri Kunde Schlesner
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.
2014-11-23Merge pull request #191 from archshift/deletexyzbunnei
Added DeleteFile and DeleteDirectory functions to FS:USER and the archives.
2014-11-23Added DeleteFile and DeleteDirectory functions to FS:USER and the archives.archshift
2014-11-19Merge pull request #211 from linkmauve/masterbunnei
Remove trailing spaces from the entire project
2014-11-19Merge pull request #208 from lioncash/staticsbunnei
Add static to some variables