summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/shared_memory.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* kernel: Eliminate kernel global stateLioncash2018-08-291-4/+9
| | | | | | | | | | | | | | | | | | | | | | 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.
* core/memory: Get rid of 3DS leftoversLioncash2018-08-031-3/+0
| | | | Removes leftover code from citra that isn't needed.
* kernel: Move object class to its own source filesLioncash2018-08-021-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.
* kernel: Remove unnecessary includesLioncash2018-07-311-0/+3
| | | | | Removes unnecessary direct dependencies in some headers and also gets rid of indirect dependencies that were being relied on to be included.
* svc: SharedMemory size should be 64-bits and cleanup.bunnei2018-02-031-2/+2
|
* Format: Run the new clang format on everythingJames Rowe2018-01-211-5/+5
|
* Fixed type conversion ambiguityHuw Pascoe2017-09-301-1/+1
|
* Remove empty newlines in #include blocks.Emmanuel Gil Peyrot2016-09-211-2/+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-21/+38
|
* HLE/Applets: Give each applet its own block of heap memory, and use that when creating the framebuffer shared memory block.Subv2016-05-131-1/+13
|
* Kernel: Implemented shared memory permissions.Subv2016-05-131-0/+6
|
* Kernel/SharedMemory: Properly implemented shared memory support.Subv2016-05-131-8/+20
| | | | | | | Applications can request the kernel to allocate a piece of the linear heap for them when creating a shared memory object. Shared memory areas are now properly mapped into the target processes when calling svcMapMemoryBlock. Removed the APT Shared Font hack as it is no longer needed.
* HLE/SVC: Implement UnmapMemoryBlock.Subv2016-01-141-0/+7
| | | | This implementation will need to be (almost completely) changed when we implement multiprocess support.
* Core: Improve APT Shared Font hackYuri Kunde Schlesner2015-08-271-0/+2
| | | | Should fix invalid read loops in some games
* Core: Fix applet includes using iwyu.Emmanuel Gil Peyrot2015-07-121-0/+3
|
* Kernel: Capture SharedMemory attributes at creation, not when mappingYuri Kunde Schlesner2015-05-111-7/+18
|
* 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.)
* shared_memory: Fix assignments in SharedMemory::MapLioncash2015-01-301-1/+1
|
* Kernel: Mark all appropriate kernel objects as "final"Yuri Kunde Schlesner2015-01-301-1/+1
|
* Kernel: Convert SharedMemory to not use HandlesYuri Kunde Schlesner2015-01-301-24/+36
|
* License changepurpasmart962014-12-211-1/+1
|
* Merge pull request #185 from purpasmart96/mem_permbunnei2014-12-181-5/+9
|\ | | | | Kernel: Add missing permissions
| * Kernel:Add missing permissions in shared memory & svcpurpasmart962014-11-191-5/+9
| |
* | Remove duplicated docs/update them for changed parameters.Yuri Kunde Schlesner2014-11-241-1/+0
| |
* | HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner2014-11-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2/+2
|/
* SharedMemory: Updated MapSharedMemory to use an enum for permissions.bunnei2014-07-051-1/+11
| | | | - Also added some safety checks to MapSharedMemory.
* Kernel: Added support for shared memory objects.bunnei2014-07-051-0/+38
SharedMemory: Added optional name field for tracking known objects.