summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/writable_event.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-01-29core: hle: kernel: object: Implement Finalize() virtual method.bunnei1-1/+2
2019-12-08kernel: Remove unnecessary includesLioncash1-0/+2
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-4/+4
* 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-11-03kernel: events: Remove ResetType::Automatic.bunnei1-5/+1
- 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-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-01-01core/kernel: Remove unnecessary inclusionsLioncash1-2/+0
Gets rid of a few unnecessary header dependencies in some source files.
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-29hle_ipc: Refactor SleepClientThread to avoid ReadableEventZach Hilman1-0/+2
2018-11-29kernel/event: Reference ReadableEvent from WritableEventZach Hilman1-25/+11
2018-11-29kernel: Divide Event into ReadableEvent and WritableEventZach Hilman1-6/+21
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