summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_shared_memory.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-11-04core: Remove unused includesameerj1-1/+0
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-8/+7
Now that the large kernel refactor is merged, we can eliminate the remaining variable shadowing cases.
2021-05-06hle: kernel: Improve MapSharedMemory and implement UnmapSharedMemory.bunnei1-5/+14
2021-05-06hle: kernel: Rename Process to KProcess.bunnei1-4/+4
2021-05-06hle: kernel: Remove deprecated Object class.bunnei1-13/+0
2021-05-06hle: kernel: Migrate KResourceLimit to KAutoObject.bunnei1-1/+1
2021-05-06hle: kernel: Migrate KSharedMemory to KAutoObject.bunnei1-13/+21
2021-02-19hle: kernel: Migrate PageLinkedList to KPageLinkedList.bunnei1-3/+3
2021-02-19hle: kernel: Migrate to KMemoryBlock, KMemoryBlockManager, and others.bunnei1-6/+6
2021-02-19hle: kernel: Rename SharedMemory to KSharedMemory.bunnei1-4/+4
2021-01-29core: hle: kernel: object: Implement Finalize() virtual method.bunnei1-0/+2
2020-04-24shared_memory: Amend doxygen referenceLioncash1-1/+1
Amends the parameter to match the documentation reference. Resolves a -Wdocumentation warning with clang.
2020-04-17core: hle: Address various feedback & code cleanup.bunnei1-1/+1
- Should be no functional changes.
2020-04-17kernel: shared_memory: Refactor for new VMM.bunnei1-98/+29
2019-12-08kernel: Remove unnecessary includesLioncash1-1/+0
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-9/+10
* 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-07-19VM_Manager: Align allocated memory to 256bytesFernando Sahmkow1-7/+6
This commit ensures that all backing memory allocated for the Guest CPU is aligned to 256 bytes. This due to how gpu memory works and the heavy constraints it has in the alignment of physical memory.
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-03-29kernel/shared_memory: Sanitize supplied size when unmappingLioncash1-2/+8
The kernel makes sure that the given size to unmap is always the same size as the entire region managed by the shared memory instance, otherwise it returns an error code signifying an invalid size. This is similarly done for transfer memory (which we already check for).
2018-12-12Fix Process object leak on emulation stopJens Schmer1-3/+3
The Process object kept itself alive indefinitely because its handle_table contains a SharedMemory object which owns a reference to the same Process object, creating a circular ownership scenario. Break that up by storing only a non-owning pointer in the SharedMemory object.
2018-11-19kernel/shared_memory: Make Map() and Unmap() take the target process by reference rather than as a pointerLioncash1-3/+3
Both member functions assume the passed in target process will not be null. Instead of making this assumption implicit, we can change the functions to be references and enforce this at the type-system level.
2018-11-19kernel/shared_memory: Add a const qualified member function overload for GetPointer()Lioncash1-1/+8
Given this doesn't mutate instance state, we can provide a const-qualified variant as well.
2018-11-19kernel/shared_memory: Use 64-bit types for offset and size in CreateForAppletLioncash1-1/+1
Keeps the interface consistent with the regular Create() function.
2018-11-19kernel/shared_memory: Make GetPointer() take a std::size_t instead of a u32Lioncash1-1/+1
Makes the interface nicer to use in terms of 64-bit code, as it makes it less likely for one to get truncation warnings (and also makes sense in the context of the rest of the interface where 64-bit types are used for sizes and offsets
2018-11-19kernel/shared_memory: Make data members privateLioncash1-12/+17
Rather than allow unfettered access to the class internals, we hide all members by default and create and API that other code can operate against.
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi1-1/+1
2018-08-29kernel: Eliminate kernel global stateLioncash1-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.
2018-08-03core/memory: Get rid of 3DS leftoversLioncash1-3/+0
Removes leftover code from citra that isn't needed.
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-07-31kernel: Remove unnecessary includesLioncash1-0/+3
Removes unnecessary direct dependencies in some headers and also gets rid of indirect dependencies that were being relied on to be included.
2018-02-03svc: SharedMemory size should be 64-bits and cleanup.bunnei1-2/+2
2018-01-21Format: Run the new clang format on everythingJames Rowe1-5/+5
2017-09-30Fixed type conversion ambiguityHuw Pascoe1-1/+1
2016-09-21Remove empty newlines in #include blocks.Emmanuel Gil Peyrot1-2/+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-21/+38
2016-05-13HLE/Applets: Give each applet its own block of heap memory, and use that when creating the framebuffer shared memory block.Subv1-1/+13
2016-05-13Kernel: Implemented shared memory permissions.Subv1-0/+6
2016-05-13Kernel/SharedMemory: Properly implemented shared memory support.Subv1-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.
2016-01-14HLE/SVC: Implement UnmapMemoryBlock.Subv1-0/+7
This implementation will need to be (almost completely) changed when we implement multiprocess support.
2015-08-27Core: Improve APT Shared Font hackYuri Kunde Schlesner1-0/+2
Should fix invalid read loops in some games
2015-07-12Core: Fix applet includes using iwyu.Emmanuel Gil Peyrot1-0/+3
2015-05-11Kernel: Capture SharedMemory attributes at creation, not when mappingYuri Kunde Schlesner1-7/+18
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-30shared_memory: Fix assignments in SharedMemory::MapLioncash1-1/+1
2015-01-30Kernel: Mark all appropriate kernel objects as "final"Yuri Kunde Schlesner1-1/+1
2015-01-30Kernel: Convert SharedMemory to not use HandlesYuri Kunde Schlesner1-24/+36
2014-12-21License changepurpasmart961-1/+1
2014-11-24Remove duplicated docs/update them for changed parameters.Yuri Kunde Schlesner1-1/+0
2014-11-24HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner1-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.
2014-11-19Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generatedEmmanuel Gil Peyrot1-2/+2
2014-11-19Kernel:Add missing permissions in shared memory & svcpurpasmart961-5/+9
2014-07-05SharedMemory: Updated MapSharedMemory to use an enum for permissions.bunnei1-1/+11
- Also added some safety checks to MapSharedMemory.
2014-07-05Kernel: Added support for shared memory objects.bunnei1-0/+38
SharedMemory: Added optional name field for tracking known objects.