Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | hle_ipc: Rename ReadBufferSpan to ReadBuffer | ameerj | 2022-12-29 | 1 | -3/+3 |
| | |||||
* | hle_ipc: Rename ReadBuffer to ReadBufferCopy | ameerj | 2022-12-29 | 1 | -2/+3 |
| | | | | Indicates explicitly that a copy is occurring | ||||
* | hle_ipc: Add ReadBufferSpan function | ameerj | 2022-12-25 | 1 | -0/+3 |
| | | | | Returns a std::span to the buffer address, rather than create a copy of the memory into a std::vector | ||||
* | hle_ipc: Add helper functions for getting number of buffer elements | Lioncash | 2022-11-23 | 1 | -0/+12 |
| | |||||
* | hle_ipc: Mark relevant member functions as [[nodiscard]] | Lioncash | 2022-11-23 | 1 | -25/+25 |
| | | | | | Will allow the compiler to complain about cases where ignoring the return value would be a bug. | ||||
* | service_thread: fix deletion | Liam | 2022-11-07 | 1 | -3/+3 |
| | |||||
* | kernel: invert session request handling flow | Liam | 2022-10-31 | 1 | -17/+12 |
| | |||||
* | concepts: Use the std::contiguous_iterator concept | Morph | 2022-10-26 | 1 | -1/+1 |
| | | | | | | This also covers std::span, which does not have a const iterator. Also renames IsSTLContainer to IsContiguousContainer to explicitly convey its semantics. | ||||
* | kernel: remove most SessionRequestManager handling from KServerSession | Liam | 2022-10-19 | 1 | -0/+9 |
| | |||||
* | kernel: remove KWritableEvent | Liam | 2022-10-13 | 1 | -1/+1 |
| | |||||
* | Project Andio | Kelebek1 | 2022-07-22 | 1 | -0/+8 |
| | |||||
* | core: Replace all instances of ResultCode with Result | german77 | 2022-06-27 | 1 | -7/+6 |
| | |||||
* | common: Change semantics of UNREACHABLE to unconditionally crash | Liam | 2022-06-14 | 1 | -1/+1 |
| | |||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 1 | -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. | ||||
* | hle: service: Add option for service interfaces to create or use the default thread. | bunnei | 2022-04-02 | 1 | -1/+7 |
| | |||||
* | core: hle: kernel: Use weak_ptr where possible for SessionRequestHandler and SessionRequestManager. | bunnei | 2022-03-15 | 1 | -4/+5 |
| | |||||
* | hle: kernel: KServerSession: Simplify CompleteSyncRequest EndWait. | bunnei | 2022-01-21 | 1 | -5/+0 |
| | | | | | - Considering is_thread_waiting is never set, so we can remove IsThreadWaiting. - KThread::EndWait will take the scheduler lock, so we can remove the redundant lock. | ||||
* | kernel: hle_ipc: Foward declare KAutoObject | Morph | 2021-10-07 | 1 | -1/+1 |
| | |||||
* | hle: kernel: hle_ipc: Ensure SessionRequestHandler is valid. | bunnei | 2021-06-08 | 1 | -1/+2 |
| | |||||
* | hle: kernel: Remove service thread manager and use weak_ptr. | bunnei | 2021-06-08 | 1 | -3/+3 |
| | | | | | - We no longer need to queue up service threads to be destroyed. - Fixes a race condition where a thread could be destroyed too early, which caused a crash in Pokemon Sword/Shield. | ||||
* | hle: kernel: k_server_session: Return service thread by strong pointer. | bunnei | 2021-06-07 | 1 | -3/+3 |
| | |||||
* | hle: kernel: Refactor to allocate a ServiceThread per service handler. | bunnei | 2021-06-05 | 1 | -2/+20 |
| | | | | | | - Previously, we would allocate a thread per session, which adds new threads on CloneCurrentObject. - This results in race conditions with N sessions queuing requests to the same service interface. - Fixes Pokken Tournament DX crashes/softlocks, which were regressed by #6347. | ||||
* | hle: kernel: hle_ipc: Simplify incoming/outgoing move/copy/domain objects. | bunnei | 2021-05-21 | 1 | -32/+11 |
| | |||||
* | hle: kernel: Implement CloneCurrentObject and improve session management. | bunnei | 2021-05-21 | 1 | -9/+73 |
| | |||||
* | hle_ipc: Add a getter for PID | Morph | 2021-05-16 | 1 | -1/+6 |
| | |||||
* | hle: kernel: hle_ipc: Fix outgoing IPC response size calculation. | bunnei | 2021-05-11 | 1 | -0/+1 |
| | |||||
* | hle: kernel: hle_ipc: Improve IPC code and add initial support for TIPC. | bunnei | 2021-05-11 | 1 | -1/+2 |
| | | | | | - Fixes our move handles implementation to actually move objects. - Simplifies the traditional IPC path. | ||||
* | hle: kernel: Further cleanup and add TIPC helpers. | bunnei | 2021-05-11 | 1 | -3/+11 |
| | |||||
* | hle: ipc_helpers: Update IPC response generation for TIPC. | bunnei | 2021-05-11 | 1 | -2/+8 |
| | |||||
* | kernel: Eliminate variable shadowing | Lioncash | 2021-05-08 | 1 | -1/+1 |
| | | | | | Now that the large kernel refactor is merged, we can eliminate the remaining variable shadowing cases. | ||||
* | hle: kernel: Migrate to KHandleTable. | bunnei | 2021-05-06 | 1 | -3/+4 |
| | |||||
* | hle: kernel: Rename Process to KProcess. | bunnei | 2021-05-06 | 1 | -1/+1 |
| | |||||
* | hle: kernel: Remove deprecated Object class. | bunnei | 2021-05-06 | 1 | -10/+0 |
| | |||||
* | hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject. | bunnei | 2021-05-06 | 1 | -8/+2 |
| | |||||
* | hle: kernel: HandleTable: Remove deprecated APIs. | bunnei | 2021-05-06 | 1 | -5/+5 |
| | |||||
* | hle: kernel: Migrate KSession, KClientSession, and KServerSession to KAutoObject. | bunnei | 2021-05-06 | 1 | -10/+8 |
| | |||||
* | hle: kernel: Refactor IPC interfaces to not use std::shared_ptr. | bunnei | 2021-05-06 | 1 | -8/+11 |
| | |||||
* | hle: kernel: Migrate more of KThread to KAutoObject. | bunnei | 2021-05-06 | 1 | -2/+2 |
| | |||||
* | hle: kernel: Refactor out various KThread std::shared_ptr usage. | bunnei | 2021-05-06 | 1 | -7/+3 |
| | |||||
* | hle_ipc: Add helper functions to get copy/move handles | Morph | 2021-04-15 | 1 | -0/+10 |
| | |||||
* | hle: kernel: Rename WritableEvent to KWritableEvent. | bunnei | 2021-02-05 | 1 | -1/+1 |
| | |||||
* | hle: kernel: Rename ReadableEvent to KReadableEvent. | bunnei | 2021-02-05 | 1 | -1/+1 |
| | |||||
* | hle: kernel: Recode implementation of KThread to be more accurate. | bunnei | 2021-01-29 | 1 | -3/+0 |
| | |||||
* | core: hle: kernel: Rename Thread to KThread. | bunnei | 2021-01-29 | 1 | -7/+7 |
| | |||||
* | hle_ipc: Add Can(Read, Write)Buffer | Morph | 2021-01-28 | 1 | -0/+6 |
| | | | | Allows us to test whether a buffer can be read from or written to memory | ||||
* | hle: kernel: hle_ipc: Remove SleepClientThread. | bunnei | 2020-12-29 | 1 | -17/+0 |
| | | | | - This was kind of hacky, and no longer is necessary with service threads. | ||||
* | ipc_helpers: Remove usage of the global system instance | Lioncash | 2020-11-08 | 1 | -0/+6 |
| | | | | | | | | | Resolves numerous deprecation warnings throughout the codebase due to inclusion of this header. Now building core should be significantly less noisy (and also relying on less global state). This also uncovered quite a few modules that were relying on indirect includes, which have also been fixed. | ||||
* | ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer (#4465) | David | 2020-08-03 | 1 | -14/+16 |
| | | | | | | | | | | | | | * ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer With the support of C++20, we can use concepts to deduce if a type is an STL container or not. * More agressive concept for stl containers * Add -fconcepts * Move to common namespace * Add Common::IsBaseOf | ||||
* | hle_ipc: Eliminate core memory globals | Lioncash | 2020-05-03 | 1 | -1/+10 |
| | | | | | We can just pass the required instances into the constructor of the request, eliminating all usages of the global system accessor. | ||||
* | hle_ipc: Remove std::size_t casts where applicable | Lioncash | 2020-04-17 | 1 | -5/+7 |
| | | | | | | | | | These were added in the change that enabled -Wextra on linux builds so as not to introduce interface changes in the same change as a build-system flag addition. Now that the flags are enabled, we can freely change the interface to make these unnecessary. | ||||
* | kernel: Implement a more accurate IPC dispatch. | bunnei | 2019-11-28 | 1 | -0/+13 |
| | |||||
* | kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. (#3154) | bunnei | 2019-11-25 | 1 | -18/+20 |
| | | | | | | * 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. | ||||
* | HLE/IPC: HLEContext can memorize the client thread and use it for SleepClientThread | Weiyi Wang | 2019-05-18 | 1 | -4/+4 |
| | | | | This reduces the boilerplate that services have to write out the current thread explicitly. Using current thread instead of client thread is also semantically incorrect, and will be a problem when we implement multicore (at which time there will be multiple current threads) | ||||
* | kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional | Lioncash | 2019-03-08 | 1 | -7/+8 |
| | | | | | | | | | There's no real need to use a shared lifetime here, since we don't actually expose them to anything else. This is also kind of an unnecessary use of the heap given the objects themselves are so small; small enough, in fact that changing over to optionals actually reduces the overall size of the HLERequestContext struct (818 bytes to 808 bytes). | ||||
* | core/hle/ipc: Remove unnecessary includes | Lioncash | 2019-03-05 | 1 | -5/+5 |
| | | | | | | | | | | | Removes a few inclusion dependencies from the headers or replaces existing ones with ones that don't indirectly include the required headers. This allows removing an inclusion of core/memory.h, meaning that if the memory header is ever changed in the future, it won't result in rebuilding the entirety of the HLE services (as the IPC headers are used quite ubiquitously throughout the HLE service implementations). | ||||
* | core/kernel: Remove unnecessary inclusions | Lioncash | 2019-01-01 | 1 | -3/+6 |
| | | | | Gets rid of a few unnecessary header dependencies in some source files. | ||||
* | hle_ipc: Refactor SleepClientThread to avoid ReadableEvent | Zach Hilman | 2018-11-29 | 1 | -3/+1 |
| | |||||
* | hle_ipc: Use event pair for SleepClientThread | Zach Hilman | 2018-11-29 | 1 | -5/+9 |
| | |||||
* | hle_ipc: Add member function for querying the existence of a domain header | Lioncash | 2018-10-30 | 1 | -0/+4 |
| | | | | Gets rid of the need to call the getter and then check for null. | ||||
* | hle_ipc: Make GetDomainMessageHeader return a regular pointer | Lioncash | 2018-10-30 | 1 | -2/+2 |
| | | | | | Nothing requires the shared owner ship here, so we can just return a plain pointer. | ||||
* | kernel/process: Make the handle table per-process | Lioncash | 2018-10-20 | 1 | -6/+7 |
| | | | | | | | | In the kernel, there isn't a singular handle table that everything gets tossed into or used, rather, each process gets its own handle table that it uses. This currently isn't an issue for us, since we only execute one process at the moment, but we may as well get this out of the way so it's not a headache later on. | ||||
* | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 2018-09-15 | 1 | -10/+10 |
| | |||||
* | hle_ipc: Make WriteToOutgoingCommandBuffer()'s reference parameter const | Lioncash | 2018-08-09 | 1 | -1/+1 |
| | | | | | This function doesn't modify anything within the reference Thread instance. | ||||
* | kernel: Move object class to its own source files | Lioncash | 2018-08-02 | 1 | -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 includes | Lioncash | 2018-07-31 | 1 | -1/+0 |
| | | | | | Removes unnecessary direct dependencies in some headers and also gets rid of indirect dependencies that were being relied on to be included. | ||||
* | hle_ipc: Make constructors explicit where applicable | Lioncash | 2018-07-24 | 1 | -1/+1 |
| | |||||
* | hle_ipc: Introduce generic WriteBuffer overload for multiple container types | Lioncash | 2018-07-19 | 1 | -2/+21 |
| | | | | | | | | | | | | | | | This introduces a slightly more generic variant of WriteBuffer(). Notably, this variant doesn't constrain the arguments to only accepting std::vector instances. It accepts whatever adheres to the ContiguousContainer concept in the C++ standard library. This essentially means, std::array, std::string, and std::vector can be used directly with this interface. The interface no longer forces you to solely use containers that dynamically allocate. To ensure our overloads play nice with one another, we only enable the container-based WriteBuffer if the argument is not a pointer, otherwise we fall back to the pointer-based one. | ||||
* | core/memory, core/hle/kernel: Use std::move where applicable | Lioncash | 2018-07-19 | 1 | -2/+2 |
| | | | | Avoids pointless copies | ||||
* | nvflinger: Fix for BufferQueue event handling. | bunnei | 2018-07-17 | 1 | -1/+3 |
| | |||||
* | ipc: Add support for PopIpcInterface() method. | bunnei | 2018-05-02 | 1 | -0/+12 |
| | | | | - This can be used for domain objects as inputs to service functions. | ||||
* | GetSharedFontInOrderOfPriority (#381) | David | 2018-05-01 | 1 | -5/+5 |
| | | | | | | | | | | | | | | | | | | | | * GetSharedFontInOrderOfPriority * Update pl_u.cpp * Ability to use ReadBuffer and WriteBuffer with different buffer indexes, fixed up GetSharedFontInOrderOfPriority * switched to NGLOG * Update pl_u.cpp * Update pl_u.cpp * language_code is actually language code and not index * u32->u64 * final cleanups | ||||
* | hle_ipc: Add SleepClientThread to block current thread within HLE routines. | bunnei | 2018-03-19 | 1 | -0/+20 |
| | |||||
* | hle_ipc: Use shared_ptr instead of unique_ptr to allow copies. | bunnei | 2018-03-19 | 1 | -5/+5 |
| | |||||
* | hle_ipc: Remove GetPointer(..) usage with WriteToOutgoingCommandBuffer. | bunnei | 2018-03-19 | 1 | -2/+2 |
| | |||||
* | Service/hid: stub some functions | mailwl | 2018-02-16 | 1 | -0/+2 |
| | |||||
* | hle_ipc: Remove const from WriteBuffer size. | bunnei | 2018-02-14 | 1 | -1/+1 |
| | |||||
* | hle_ipc: Add GetReadBufferSize and check write buffer size. | bunnei | 2018-02-14 | 1 | -0/+3 |
| | |||||
* | hle_ipc: Add helper functions for reading and writing buffers. | bunnei | 2018-02-14 | 1 | -0/+12 |
| | |||||
* | ipc_helpers: Make interface domain agnostic and add header validation. | bunnei | 2018-01-25 | 1 | -1/+12 |
| | |||||
* | hle: Integrate Domain handling into ServerSession. | bunnei | 2018-01-25 | 1 | -14/+2 |
| | |||||
* | Stub PopLaunchParameter and implement Buffer C Descriptors reading on hle_ipc (#96) | gdkchan | 2018-01-18 | 1 | -0/+6 |
| | | | | | | | | | | * Stub PopLaunchParameter and implement Buffer C Descriptors reading * Address PR feedback * Ensure we push a u64 not a size_t * Fix formatting | ||||
* | IPC: Push domain objects as move handles when not in a domain. | Subv | 2018-01-17 | 1 | -0/+8 |
| | |||||
* | clang-format | MerryMage | 2018-01-16 | 1 | -2/+2 |
| | |||||
* | yuzu: Update license text to be consistent across project. | bunnei | 2018-01-13 | 1 | -1/+1 |
| | |||||
* | core: Fix recent GCC build breaks. | bunnei | 2018-01-12 | 1 | -2/+2 |
| | |||||
* | IPC: Corrected some definitions for the buffer C descriptor flags. | Subv | 2018-01-11 | 1 | -0/+4 |
| | |||||
* | IPC: Add functions to read the input move/copy objects from an IPC request. | Subv | 2018-01-07 | 1 | -0/+12 |
| | |||||
* | IPC Cleanup: Remove 3DS-specific code and translate copy, move and domain objects in IPC requests. | Subv | 2018-01-07 | 1 | -22/+17 |
| | | | | Popping objects from the buffer is still not implemented. | ||||
* | IPC: Use the correct size when pushing raw data to the command buffer and fixed pushing domain objects. | Subv | 2018-01-07 | 1 | -2/+6 |
| | | | | Domain object ids are always stored immediately after the raw data. | ||||
* | kernel: Fix implementation of ConvertSessionToDomain. | bunnei | 2017-12-29 | 1 | -5/+24 |
| | |||||
* | service: Return proper result code for IPC::CommandType::Close. | bunnei | 2017-11-01 | 1 | -1/+1 |
| | |||||
* | hle_ipc: Parse out buffer X/A/B/B descriptors from incoming command buffer. | bunnei | 2017-10-19 | 1 | -0/+8 |
| | |||||
* | hle: Implement ConvertSessionToDomain, various cleanups. | bunnei | 2017-10-15 | 1 | -1/+2 |
| | |||||
* | hle: Initial implementation of NX service framework and IPC. | bunnei | 2017-10-15 | 1 | -2/+23 |
| | |||||
* | Kernel/IPC: Make HLERequestContext usable from outside kernel | Yuri Kunde Schlesner | 2017-06-19 | 1 | -3/+4 |
| | |||||
* | Kernel/IPC: Use boost::small_vector for HLE context objects | Yuri Kunde Schlesner | 2017-06-12 | 1 | -1/+3 |
| | |||||
* | Kernel: Allow clearing request_objects to re-use buffer space | Yuri Kunde Schlesner | 2017-06-11 | 1 | -0/+7 |
| | | | | | Reduces the necessary allocation to max(in_handles, out_handles) rather than (in_handles + out_handles). | ||||
* | Kernel: Basic support for IPC translation for HLE services | Yuri Kunde Schlesner | 2017-06-11 | 1 | -2/+35 |
| | |||||
* | Kernel: Add methods in HLERequestContext abstracting handle creation | Yuri Kunde Schlesner | 2017-06-11 | 1 | -0/+3 |
| | |||||
* | ServiceFramework: Use separate copy of command buffer | Yuri Kunde Schlesner | 2017-06-11 | 1 | -3/+6 |
| | | | | | | Copy the IPC command buffer to/from the request context before/after the handler is invoked. This is part of a move away from using global data for handling IPC requests. | ||||
* | Service: Add new ServiceFramework framework for writing HLE services | Yuri Kunde Schlesner | 2017-06-08 | 1 | -2/+34 |
| | | | | | | | | | | | | The old "Interface" class had a few problems such as using free functions (Which didn't allow you to write the service handler as if it were a regular class.) which weren't very extensible. (Only received one parameter with a pointer to the Interface object.) The new ServiceFramework aims to solve these problems by working with member functions and passing a generic context struct as parameter. This struct can be extended in the future without having to update all existing service implementations. | ||||
* | Kernel: Remove some unnecessary namespace qualifications | Yuri Kunde Schlesner | 2017-06-06 | 1 | -4/+6 |
| | |||||
* | Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSession | Yuri Kunde Schlesner | 2017-06-06 | 1 | -1/+2 |
| | | | | | | This allows attaching a HLE handle to a ServerPort at any point after it is created, allowing port/session creation to be generic between HLE and regular services. | ||||
* | HLE: Move SessionRequestHandler from Service:: to Kernel:: | Yuri Kunde Schlesner | 2017-06-06 | 1 | -0/+52 |
Most of the code that works with this is or will be in the kernel, so it's a more appropriate place for it to be. |