summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/address_arbiter.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* thread: Convert ThreadStatus into an enum classLioncash2018-07-201-2/+2
| | | | | Makes the thread status strongly typed, so implicit conversions can't happen. It also makes it easier to catch mistakes at compile time.
* address_arbiter: Correct assignment within an assertion statement in WakeThreads()Lioncash2018-07-191-1/+1
| | | | | | This was introduced within 4f81bc4e1bd12e4df7410c6790ba818d8dbba9c0, and considering there's no comment indicating that this is intentional, this is very likely a bug.
* Kernel/Arbiter: Fix bug in WaitIfLessThanMichael Scire2018-07-171-2/+4
|
* Kernel/Arbiters: Fix casts, cleanup comments/magic numbersMichael Scire2018-06-221-13/+12
|
* Run clang-format on PR.Michael Scire2018-06-221-156/+157
|
* Kernel/Arbiters: HLE is atomic, adjust code to reflect that.Michael Scire2018-06-221-36/+13
|
* Kernel/Arbiters: Clear WaitAddress in SignalToAddressMichael Scire2018-06-211-0/+1
|
* Kernel/Arbiters: Mostly implement SignalToAddressMichael Scire2018-06-211-6/+104
|
* Kernel/Arbiters: Implement WaitForAddressMichael Scire2018-06-211-4/+55
|
* Kernel/Arbiters: Add stubs for 4.x SignalToAddress/WaitForAddres SVCs.Michael Scire2018-06-211-0/+46
|
* kernel: Remove unused address_arbiter code.bunnei2018-02-181-91/+0
|
* Kernel: Centralize error definitions in errors.hYuri Kunde Schlesner2017-05-251-4/+3
|
* core: Remove HLE module, consolidate code & various cleanups.bunnei2016-12-221-1/+0
|
* Threading: Reworked the way our scheduler works.Subv2016-12-041-2/+0
| | | | | | | | | | Threads will now be awakened when the objects they're waiting on are signaled, instead of repeating the WaitSynchronization call every now and then. The scheduler is now called once after every SVC call, and once after a thread is awakened from sleep by its timeout callback. This new implementation is based off reverse-engineering of the real kernel. See https://gist.github.com/Subv/02f29bd9f1e5deb7aceea1e8f019c8f4 for a more detailed description of how the real kernel handles rescheduling.
* Use negative priorities to avoid special-casing the self-includeYuri Kunde Schlesner2016-09-211-1/+1
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-4/+2
| | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation.
* Manually tweak source formatting and then re-run clang-formatYuri Kunde Schlesner2016-09-191-4/+2
|
* Sources: Run clang-format on everything.Emmanuel Gil Peyrot2016-09-181-12/+14
|
* SVC: Fixed ArbitrateAddress to behave as it does on hardware.Subv2015-12-281-8/+17
| | | | This was verified with hwtests that i plan to upload later on.
* Kernel: Move reschedules from SVCs to actual mechanisms that reschedule.bunnei2015-05-211-0/+3
|
* Memmap: Re-organize memory function in two filesYuri Kunde Schlesner2015-05-151-1/+1
| | | | | | | memory.cpp/h contains definitions related to acessing memory and configuring the address space mem_map.cpp/h contains higher-level definitions related to configuring the address space accoording to the kernel and allocating memory.
* Common: Remove common.hYuri Kunde Schlesner2015-05-071-0/+1
|
* SVC: Update various SVCs to cause a reschedule.bunnei2015-04-101-4/+0
| | | | - CreateMutex/ReleaseMutex/ReleaseSemaphore/SetTimer/CancelTimer/ArbitrateAddress
* Kernel: Stop creating useless Handles during object creationYuri Kunde Schlesner2015-02-021-4/+2
| | | | | They're finally unnecessary, and will stop cluttering the application's handle table.
* Explicitly instantiate constructors/destructors for Kernel objectsYuri Kunde Schlesner2015-02-021-0/+3
| | | | | | 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.)
* Thread: Modernize two functions that slipped through previous rebasesYuri Kunde Schlesner2015-02-021-2/+2
|
* Kernel: Convert AddressArbiter to not use HandlesYuri Kunde Schlesner2015-01-301-30/+9
|
* Kernel: Remove useless/duplicated comments; mark functions staticYuri Kunde Schlesner2015-01-301-4/+1
|
* AddressArbiter: Changed to Kernel::Object, big cleanup, removed code that made no sense.bunnei2015-01-221-8/+8
|
* WaitSynchronizationN: Implement return valuesbunnei2015-01-221-4/+4
|
* Thread: Keep track of multiple wait objects.bunnei2015-01-221-2/+3
|
* AddrArbiter: Implement arbitration types 3 and 4.Subv2015-01-131-2/+19
|
* Kernel: Start using boost::intrusive_ptr for lifetime managementYuri Kunde Schlesner2015-01-091-1/+1
|
* Thread: Reduce use of Handles and move some funcs to inside the class.Yuri Kunde Schlesner2015-01-091-4/+8
|
* AddressArbiter: Ported arbitration type 2 from 3dmoo.Subv2015-01-031-0/+11
| | | | (Thanks 3dmoo!)
* Kernel: New handle managerYuri Kunde Schlesner2014-12-281-1/+2
| | | | | | | | | | | 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.
* Kernel: Replace GetStaticHandleType by HANDLE_TYPE constantsYuri Kunde Schlesner2014-12-281-2/+2
|
* Rename ObjectPool to HandleTableYuri Kunde Schlesner2014-12-281-1/+1
|
* License changepurpasmart962014-12-211-1/+1
|
* Convert old logging calls to new logging macrosYuri Kunde Schlesner2014-12-131-7/+1
|
* Thread: Fixed to wait on address when in arbitration.bunnei2014-12-091-1/+1
|
* Remove duplicated docs/update them for changed parameters.Yuri Kunde Schlesner2014-11-241-5/+0
|
* HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner2014-11-241-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Add `override` keyword through the code.Yuri Kunde Schlesner2014-10-261-4/+4
| | | | This was automated using `clang-modernize`.
* Core: Alter the kernel string functions to use std::string instead of const char*.Lioncash2014-08-181-2/+2
| | | | Most functions already operate on std::strings. This also removes the need to manually null terminate thread names.
* AddressArbiter: Removed unnecessary HLE::Reschedule.bunnei2014-08-061-1/+0
|
* AddressArbiter: Fixed bug with break statements missing from case statements.bunnei2014-08-061-0/+2
|
* Kernel: Added preliminary support for address arbiters.bunnei2014-07-091-0/+87
AddressArbiter: Added documentation comment, fixed whitespace issue. AddressArbiter: Fixed incorrect comment, reordered if-statement to be more clear. SVC: Removed trailing whitespace.