| Commit message (Collapse) | Author | Age |
| |
|
| |
|
|\
| |
| | |
Thread: Prevent waking a thread multiple times.
|
| |
| |
| |
| | |
If a thread was woken up by something, cancel the wakeup timeout.
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
Implemented timers
|
| | |
|
| |
| |
| |
| | |
It will now properly wait the specified number of nanoseconds and then wake up the thread.
|
| |
| |
| |
| | |
This thread will not actually execute instructions, it will only advance the timing/events and try to yield immediately to the next ready thread, if there aren't any ready threads then it will be rescheduled and start its job again.
|
|/
|
|
|
|
|
|
| |
Replace all the C-style complicated buffer management with a std::deque.
In addition to making the code easier to understand it also adds support
for non-POD IdTypes.
Also clean the rest of the code to follow our code style.
|
|\
| |
| | |
AddressArbiter: Ported arbitration type 2 from 3dmoo.
|
| |
| |
| |
| | |
This will happen when the mutex is already owned by another thread. Should fix some issues with games being stuck due to waiting threads not being awoken.
|
|/
|
|
| |
(Thanks 3dmoo!)
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|\
| |
| | |
License change
|
| | |
|
| |
| |
| |
| |
| |
| | |
- Removed unused VBLANK sleep mode
- Added error log for bad context switch
- Renamed VerifyWait to CheckWaitType to be more clear
|
|\ \
| | |
| | | |
Kernel: Implement support for current thread pseudo-handle
|
| |/
|/| |
|
| |
| |
| |
| | |
This boots a few (mostly Nintendo 1st party) games further.
|
|\ \
| | |
| | | |
Kernel: Add missing permissions
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.)
|
| | |
|
| |
| |
| |
| | |
Same semantics, idea by @yuriks
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
This behavior was tested on hardware, however i'm still not sure what use the "initial_count" parameter has
|
| |
| |
| |
| |
| | |
ToDo: Implement svcReleaseSemaphore
* Some testing against hardware needed
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Kernel/Mutex: Properly lock the mutex when a thread enters it
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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 .
|
| | |
| | |
| | |
| | | |
Moved Mutex::WaitSynchronization to the end of the file.
|
| | | |
|
|/ /
| |
| |
| | |
Also resume only the next immediate thread waiting for the mutex when it is released, instead of resuming them all.
|
|\ \
| | |
| | | |
SVC: Implemented GetThreadId.
|