summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/address_arbiter.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* address_arbiter: Simplify GetThreadsWaitingOnAddress()Lioncash2020-02-121-1/+1
| | | | | Simplifies the overall function and also allows for it to become a const-qualified member function.
* Kernel: Correct behavior of Address Arbiter threads. (#3165)Fernando Sahmkow2019-12-111-1/+18
| | | | | | | | | | | * Kernel: Correct behavior of Address Arbiter threads. This corrects arbitration threads to behave just like in Horizon OS. They are added into a container and released according to what priority they had when added. Horizon OS does not reorder them if their priority changes. * Kernel: Address Feedback.
* kernel: Remove unnecessary includesLioncash2019-12-081-1/+1
| | | | | | Over the course of the changes to the kernel code, a few includes are no longer necessary, particularly with the change over to std::shared_ptr from Boost's intrusive_ptr.
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. (#3154)bunnei2019-11-251-1/+1
| | | | | | * kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. - See https://github.com/citra-emu/citra/pull/4710 for details.
* kernel: Make the address arbiter instance per-processLioncash2019-03-081-1/+3
| | | | | | | | | | Now that we have the address arbiter extracted to its own class, we can fix an innaccuracy with the kernel. Said inaccuracy being that there isn't only one address arbiter. Each process instance contains its own AddressArbiter instance in the actual kernel. This fixes that and gets rid of another long-standing issue that could arise when attempting to create more than one process.
* kernel/svc: Move address arbiter signaling behind a unified API functionLioncash2019-03-081-5/+8
| | | | | | | Similar to how WaitForAddress was isolated to its own function, we can also move the necessary conditional checking into the address arbiter class itself, allowing us to hide the implementation details of it from public use.
* kernel/svc: Move address arbiter waiting behind a unified API functionLioncash2019-03-081-2/+5
| | | | | | Rather than let the service call itself work out which function is the proper one to call, we can make that a behavior of the arbiter itself, so we don't need to directly expose those implementation details.
* kernel/address_arbiter: Pass in system instance to constructorLioncash2019-03-051-1/+7
| | | | | Allows getting rid of reliance on the global accessor functions and instead operating on the provided system instance.
* kernel/address_arbiter: Convert the address arbiter into a classLioncash2019-03-051-17/+51
| | | | | | Places all of the functions for address arbiter operation into a class. This will be necessary for future deglobalizing efforts related to both the memory and system itself.
* address_arbiter: Use nested namespaces where applicableLioncash2019-02-161-4/+2
| | | | | | A fairly trivial change. Other sections of the codebase use nested namespaces instead of separate namespaces here. This one must have just been overlooked.
* kernel: Remove unnecessary includesLioncash2018-07-311-1/+3
| | | | | Removes unnecessary direct dependencies in some headers and also gets rid of indirect dependencies that were being relied on to be included.
* Run clang-format on PR.Michael Scire2018-06-221-22/+22
|
* Kernel/Arbiters: Mostly implement SignalToAddressMichael Scire2018-06-211-1/+1
|
* Kernel/Arbiters: Add stubs for 4.x SignalToAddress/WaitForAddres SVCs.Michael Scire2018-06-211-0/+32
|
* kernel: Remove unused address_arbiter code.bunnei2018-02-181-60/+0
|
* Format: Run the new clang format on everythingJames Rowe2018-01-211-1/+1
|
* Kernel: Move HandleTable to a separate fileYuri Kunde Schlesner2017-05-301-0/+1
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-1/+0
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-4/+10
|
* Kernel: Stop creating useless Handles during object creationYuri Kunde Schlesner2015-02-021-1/+1
| | | | | They're finally unnecessary, and will stop cluttering the application's handle table.
* Explicitly instantiate constructors/destructors for Kernel objectsYuri Kunde Schlesner2015-02-021-1/+2
| | | | | | This should speed up compile times a bit, as well as enable more liberal use of forward declarations. (Due to SharedPtr not trying to emit the destructor anymore.)
* Kernel: Mark all appropriate kernel objects as "final"Yuri Kunde Schlesner2015-01-301-1/+1
|
* Kernel: Convert AddressArbiter to not use HandlesYuri Kunde Schlesner2015-01-301-2/+22
|
* Kernel: Remove useless/duplicated comments; mark functions staticYuri Kunde Schlesner2015-01-301-3/+0
|
* AddrArbiter: Implement arbitration types 3 and 4.Subv2015-01-131-1/+1
|
* License changepurpasmart962014-12-211-1/+1
|
* HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner2014-11-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot2014-11-191-1/+1
|
* Kernel: Added preliminary support for address arbiters.bunnei2014-07-091-0/+36
AddressArbiter: Added documentation comment, fixed whitespace issue. AddressArbiter: Fixed incorrect comment, reordered if-statement to be more clear. SVC: Removed trailing whitespace.