summaryrefslogtreecommitdiffstats
path: root/src/core/hle/ipc_helpers.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-09-19Removed MakeBuilder as it's not needed anymoreDavid Marcec1-7/+0
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi1-6/+6
2018-08-29kernel: Eliminate kernel global stateLioncash1-1/+4
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-02kernel: Move object class to its own source filesLioncash1-2/+5
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-24ipc_helper: Add helper member function for popping enum values to RequestParserLioncash1-0/+8
2018-07-24hle_ipc: Make constructors explicit where applicableLioncash1-11/+12
2018-07-24ipc_helpers: Make member variables of ResponseBuilder privateLioncash1-5/+6
These aren't used externally at all, so they can be made private.
2018-07-20ipc_helpers: Add PushEnum() member function to ResponseBuilderLioncash1-0/+19
Allows pushing strongly-typed enum members without the need to always cast them at the call sites. Note that we *only* allow strongly-typed enums in this case. The reason for this is that strongly typed enums have a guaranteed defined size, so the size of the data being pushed is always deterministic. With regular enums this can be a little more error-prone, so we disallow them. This function simply uses the underlying type of the enum to determine the size of the data. For example, if an enum is defined as: enum class SomeEnum : u16 { SomeEntry }; if PushEnum(SomeEnum::SomeEntry); is called, then it will push a u16-size amount of data.
2018-05-02ipc: Add support for PopIpcInterface() method.bunnei1-0/+7
- This can be used for domain objects as inputs to service functions.
2018-02-20Fix: change check for domain order and existance of domain message headermailwl1-1/+2
2018-02-20IPC: add domain header to response if only it exists in requestmailwl1-1/+1
2018-01-25ResponseBuilder: Use a bit field for customizing instead of always_move_handles.bunnei1-9/+18
2018-01-25hle: Rename RequestBuilder to ResponseBuilder.bunnei1-20/+21
2018-01-25ipc_helpers: Make interface domain agnostic and add header validation.bunnei1-24/+46
2018-01-25hle: Integrate Domain handling into ServerSession.bunnei1-3/+3
2018-01-25hle: Remove Domain and SyncObject kernel objects.bunnei1-1/+0
2018-01-22IPC: Don't create an unnecessary port when using PushIpcInterface outside of a domain.Subv1-4/+5
2018-01-21fsp_srv: Various improvements to IStorage:Read implementation.bunnei1-0/+5
2018-01-18Stub PopLaunchParameter and implement Buffer C Descriptors reading on hle_ipc (#96)gdkchan1-0/+4
* Stub PopLaunchParameter and implement Buffer C Descriptors reading * Address PR feedback * Ensure we push a u64 not a size_t * Fix formatting
2018-01-17IPC: Push domain objects as move handles when not in a domain.Subv1-2/+20
2018-01-11IPC: Allow passing arguments to the Interfaces when using PushIpcInterfaceSubv1-3/+3
2018-01-07IPC: Take the number of domain objects as a parameter in MakeBuilder.Subv1-2/+4
2018-01-07IPC: Fixed pushing ResultCodes into the command buffer.Subv1-5/+7
They should have 32 bits of padding after the error code now.
2018-01-07IPC: Add functions to read the input move/copy objects from an IPC request.Subv1-0/+16
2018-01-07IPC Cleanup: Remove 3DS-specific code and translate copy, move and domain objects in IPC requests.Subv1-215/+25
Popping objects from the buffer is still not implemented.
2018-01-07IPC: Use the correct size when pushing raw data to the command buffer and fixed pushing domain objects.Subv1-5/+14
Domain object ids are always stored immediately after the raw data.
2017-12-29kernel: Fix implementation of ConvertSessionToDomain.bunnei1-0/+14
2017-10-18ipc_helpers: Fix alignment (was wrong as a result of a dynarmic bug).bunnei1-3/+4
2017-10-15hle: Implement ConvertSessionToDomain, various cleanups.bunnei1-1/+1
2017-10-15hle: Initial implementation of NX service framework and IPC.bunnei1-71/+51
2017-09-30Fixed type conversion ambiguityHuw Pascoe1-6/+6
2017-06-11Kernel: Allow clearing request_objects to re-use buffer spaceYuri Kunde Schlesner1-0/+3
Reduces the necessary allocation to max(in_handles, out_handles) rather than (in_handles + out_handles).
2017-06-11IPC: Add Pop/PushObjects methods to RequestParser/BuilderYuri Kunde Schlesner1-10/+103
These use the context functions to create and look-up handles for the user.
2017-06-11IPC: Add basic HLERequestContext support to RequestParser/BuilderYuri Kunde Schlesner1-1/+32
2017-05-30Kernel: Move HandleTable to a separate fileYuri Kunde Schlesner1-0/+2
2017-03-18IPCHelper Skip method + address comments for aptLectem1-1/+7
2017-03-18fix #2560 and other commentsLectem1-2/+2
2017-03-18move push out of class body and add u8 u16 bool specializationsLectem1-46/+106
2017-03-18refactor APT service to use the new IPC helpersLectem1-0/+12
2017-02-05fix wwylele's comment and use typename in templatesLectem1-4/+4
2016-12-26move Pop methods out of class bodyLectem1-72/+88
2016-12-26IPC helpersLectem1-0/+259