summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_readable_event.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-03-13kernel: remove kernel_Liam1-1/+1
2022-10-13kernel: remove KWritableEventLiam1-10/+7
2022-06-27core: Replace all instances of ResultCode with Resultgerman771-3/+3
2022-04-23general: Convert source file copyright comments over to SPDXMorph1-3/+2
This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2021-06-07hle: kernel: KAutoObjectWithListContainer: Use boost::instrusive::rbtree.bunnei1-2/+2
- Fixes some crashes introduced by our common intrusive red/black tree impl.
2021-05-29kernel: Add missing override specifiersLioncash1-2/+2
Over the course of the kernel refactoring a tiny bit of missing overrides slipped through review, so we can add these. While we're at it, we can remove redundant virtual keywords where applicable as well.
2021-05-08kernel: Eliminate variable shadowingLioncash1-1/+1
Now that the large kernel refactor is merged, we can eliminate the remaining variable shadowing cases.
2021-05-06fixup! hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.bunnei1-1/+1
2021-05-06hle: kernel: Remove deprecated Object class.bunnei1-12/+0
2021-05-06hle: kernel: Migrate KReadableEvent and KWritableEvent to KAutoObject.bunnei1-17/+24
2021-02-05hle: kernel: Reimplement KReadableEvent and KWritableEvent.bunnei1-25/+17
2021-02-05hle: kernel: Rename WritableEvent to KWritableEvent.bunnei1-2/+2
2021-02-05hle: kernel: Rename ReadableEvent to KReadableEvent.bunnei1-3/+3
2021-01-29core: hle: kernel: object: Implement Finalize() virtual method.bunnei1-0/+2
2021-01-11core: hle: kernel: Update KSynchronizationObject.bunnei1-6/+6
2020-02-11Kernel: Refactor synchronization to better match REFernando Sahmkow1-4/+2
2020-02-11Kernel: Change WaitObject to Synchronization object. In order to better reflect RE.Fernando Sahmkow1-2/+2
2019-11-03kernel: events: Remove ResetType::Automatic.bunnei1-5/+0
- This does not actually seem to exist in the real kernel - games reset these automatically. # Conflicts: # src/core/hle/service/am/applets/applets.cpp # src/core/hle/service/filesystem/fsp_srv.cpp
2019-11-03kernel: readable_event: Initialize members.bunnei1-1/+1
2019-04-11kernel: Make handle type declarations constexprLioncash1-1/+1
Some objects declare their handle type as const, while others declare it as constexpr. This makes the const ones constexpr for consistency, and prevent unexpected compilation errors if these happen to be attempted to be used within a constexpr context.
2019-04-02kernel/wait_object: Make ShouldWait() take thread members by pointer-to-constLioncash1-1/+1
Given this is intended as a querying function, it doesn't make sense to allow the implementer to modify the state of the given thread.
2019-01-30kernel/readable_event: Remove unnecessary WakeupAllWaitingThreads() overrideLioncash1-2/+0
This just calls the base variant of the function, so it can be removed.
2018-12-05kernel/readable_event: Add member function for enforcing a strict reset contractLioncash1-0/+11
svcResetSignal relies on the event instance to have already been signaled before attempting to reset it. If this isn't the case, then an error code has to be returned.
2018-12-04kernel/object: Amend handle types to distinguish between readable and writable eventsLioncash1-1/+1
Two kernel object should absolutely never have the same handle ID type. This can cause incorrect behavior when it comes to retrieving object types from the handle table. In this case it allows converting a WritableEvent into a ReadableEvent and vice-versa, which is undefined behavior, since the object types are not the same. This also corrects ClearEvent() to check both kernel types like the kernel itself does.
2018-11-29kernel/event: Reference ReadableEvent from WritableEventZach Hilman1-9/+8
2018-11-29kernel: Divide Event into ReadableEvent and WritableEventZach Hilman1-19/+15
More hardware accurate. On the actual system, there is a differentiation between the signaler and signalee, they form a client/server relationship much like ServerPort and ClientPort.
2018-08-29kernel: Eliminate kernel global stateLioncash1-2/+6
As means to pave the way for getting rid of global state within core, This eliminates kernel global state by removing all globals. Instead this introduces a KernelCore class which acts as a kernel instance. This instance lives in the System class, which keeps its lifetime contained to the lifetime of the System class. This also forces the kernel types to actually interact with the main kernel instance itself instead of having transient kernel state placed all over several translation units, keeping everything together. It also has a nice consequence of making dependencies much more explicit. This also makes our initialization a tad bit more correct. Previously we were creating a kernel process before the actual kernel was initialized, which doesn't really make much sense. The KernelCore class itself follows the PImpl idiom, which allows keeping all the implementation details sealed away from everything else, which forces the use of the exposed API and allows us to avoid any unnecessary inclusions within the main kernel header.
2018-08-06kernel/event: Make data members privateLioncash1-4/+8
Instead we can simply provide accessors to the required data instead of giving external read/write access to the variables directly.
2018-08-02kernel: Move object class to its own source filesLioncash1-1/+1
General moving to keep kernel object types separate from the direct kernel code. Also essentially a preliminary cleanup before eliminating global kernel state in the kernel code.
2018-01-21Format: Run the new clang format on everythingJames Rowe1-1/+1
2017-05-30Kernel: Move WaitObject to a separate fileYuri Kunde Schlesner1-0/+1
Now that HandleTable doesn't directly depend on WaitObject anymore, this can be separated from the main kernel.h header.
2017-01-05Kernel: Implemented Pulse event and timers.Subv1-0/+2
Closes #1904
2017-01-04Kernel: Object ShouldWait and Acquire calls now take a thread as a parameter.Subv1-2/+2
This will be useful when implementing mutex priority inheritance.
2016-09-22move ResetType to kernel.hwwylele1-6/+0
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-7/+12
2016-03-13svc: Move ResetType enum to the kernel event headerLioncash1-1/+7
2015-07-12Kernel: Remove unused member from EventYuri Kunde Schlesner1-1/+0
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 Event to not use HandlesYuri Kunde Schlesner1-21/+30
2015-01-22Event: Fixed some bugs and cleanup (Subv)bunnei1-7/+2
2015-01-22Event: Get rid of permanent_lock hack.bunnei1-7/+0
2014-12-21License changepurpasmart961-1/+1
2014-11-24Remove duplicated docs/update them for changed parameters.Yuri Kunde Schlesner1-4/+0
2014-11-24HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner1-4/+4
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-06-13Kernel: Updated various kernel function "name" arguments to be const references.bunnei1-1/+1
2014-06-13Kernel: Added real support for thread and event blockingbunnei1-0/+7
- SVC: Added ExitThread support - SVC: Added SignalEvent support - Thread: Added WAITTYPE_EVENT for waiting threads for event signals - Thread: Added support for blocking on other threads to finish (e.g. Thread::Join) - Thread: Added debug function for printing current threads ready for execution - Thread: Removed hack/broken thread ready state code from Kernel::Reschedule - Mutex: Moved WaitCurrentThread from SVC to Mutex::WaitSynchronization - Event: Added support for blocking threads on event signalling Kernel: Added missing algorithm #include for use of std::find on non-Windows platforms.
2014-06-03svc: added optional name field to Event and Mutex (used for debugging)bunnei1-1/+2
2014-06-01event: added a hackish ability to set an event as "locked" to its current state, cleaned up some commentsbunnei1-0/+8
2014-05-30event: added support for ClearEvent, fixed a bug with CreateEvent, fixed some commentsbunnei1-2/+3
2014-05-28event: fixed typos and updated CMakeListsbunnei1-1/+1
2014-05-28event: added SetEventLocked method to change status an events lockbunnei1-0/+7
2014-05-28kernel: added event module to support creation of CTR "Event" objectsbunnei1-6/+7
2014-05-27mutex: removed docstring comment that is no longer relevantbunnei1-1/+0
2014-05-27mutex: added additional docstringsbunnei1-0/+2
2014-05-21mutex: refactored the interface to code to return a Mutex* handlebunnei1-1/+1
2014-05-21mutex: initial commit of HLE modulebunnei1-0/+26