summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/address_arbiter.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-02-12address_arbiter: Simplify GetThreadsWaitingOnAddress()Lioncash1-1/+1
Simplifies the overall function and also allows for it to become a const-qualified member function.
2019-12-11Kernel: Correct behavior of Address Arbiter threads. (#3165)Fernando Sahmkow1-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.
2019-12-08kernel: Remove unnecessary includesLioncash1-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.
2019-11-25kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. (#3154)bunnei1-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.
2019-03-08kernel: Make the address arbiter instance per-processLioncash1-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.
2019-03-08kernel/svc: Move address arbiter signaling behind a unified API functionLioncash1-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.
2019-03-08kernel/svc: Move address arbiter waiting behind a unified API functionLioncash1-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.
2019-03-05kernel/address_arbiter: Pass in system instance to constructorLioncash1-1/+7
Allows getting rid of reliance on the global accessor functions and instead operating on the provided system instance.
2019-03-05kernel/address_arbiter: Convert the address arbiter into a classLioncash1-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.
2019-02-16address_arbiter: Use nested namespaces where applicableLioncash1-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.
2018-07-31kernel: Remove unnecessary includesLioncash1-1/+3
Removes unnecessary direct dependencies in some headers and also gets rid of indirect dependencies that were being relied on to be included.
2018-06-22Run clang-format on PR.Michael Scire1-22/+22
2018-06-21Kernel/Arbiters: Mostly implement SignalToAddressMichael Scire1-1/+1
2018-06-21Kernel/Arbiters: Add stubs for 4.x SignalToAddress/WaitForAddres SVCs.Michael Scire1-0/+32
2018-02-18kernel: Remove unused address_arbiter code.bunnei1-60/+0
2018-01-21Format: Run the new clang format on everythingJames Rowe1-1/+1
2017-05-30Kernel: Move HandleTable to a separate fileYuri Kunde Schlesner1-0/+1
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-1/+0
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
2016-09-18Sources: Run clang-format on everything.Emmanuel Gil Peyrot1-4/+10
2015-02-02Kernel: Stop creating useless Handles during object creationYuri Kunde Schlesner1-1/+1
They're finally unnecessary, and will stop cluttering the application's handle table.
2015-02-02Explicitly instantiate constructors/destructors for Kernel objectsYuri Kunde Schlesner1-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.)
2015-01-30Kernel: Mark all appropriate kernel objects as "final"Yuri Kunde Schlesner1-1/+1
2015-01-30Kernel: Convert AddressArbiter to not use HandlesYuri Kunde Schlesner1-2/+22
2015-01-30Kernel: Remove useless/duplicated comments; mark functions staticYuri Kunde Schlesner1-3/+0
2015-01-13AddrArbiter: Implement arbitration types 3 and 4.Subv1-1/+1
2014-12-21License changepurpasmart961-1/+1
2014-11-24HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner1-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.
2014-11-19Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot1-1/+1
2014-07-09Kernel: Added preliminary support for address arbiters.bunnei1-0/+36
AddressArbiter: Added documentation comment, fixed whitespace issue. AddressArbiter: Fixed incorrect comment, reordered if-statement to be more clear. SVC: Removed trailing whitespace.