2d2522693e
Revert "Merge pull request #9718 from yuzu-emu/revert-9508-hle-ipc-buffer-span"
...
This reverts commit 25fc5c0e11
, reversing
changes made to af20e25081
.
2023-02-03 00:08:45 -05:00
b01698775b
Revert "hle_ipc: Use std::span to avoid heap allocations/copies when calling ReadBuffer"
2023-02-02 15:53:28 -05:00
a1490d77ac
hle_ipc: Rename ReadBufferSpan to ReadBuffer
2022-12-28 18:46:54 -05:00
59c0f85407
hle_ipc: Rename ReadBuffer to ReadBufferCopy
...
Indicates explicitly that a copy is occurring
2022-12-28 18:46:54 -05:00
9349f06963
hle_ipc: Add ReadBufferSpan function
...
Returns a std::span to the buffer address, rather than create a copy of the memory into a std::vector
2022-12-25 13:20:59 -05:00
59335f6796
hle_ipc: Add helper functions for getting number of buffer elements
2022-11-23 13:15:19 -05:00
c31f19b6d1
hle_ipc: Mark relevant member functions as [[nodiscard]]
...
Will allow the compiler to complain about cases where ignoring the
return value would be a bug.
2022-11-23 13:08:52 -05:00
6a0d8b2aa1
service_thread: fix deletion
2022-11-06 19:50:51 -05:00
983f2b7074
kernel: invert session request handling flow
2022-10-31 17:44:06 -04:00
8b4d5aeb4f
concepts: Use the std::contiguous_iterator concept
...
This also covers std::span, which does not have a const iterator.
Also renames IsSTLContainer to IsContiguousContainer to explicitly convey its semantics.
2022-10-26 00:41:54 -04:00
fca195b4fb
kernel: remove most SessionRequestManager handling from KServerSession
2022-10-19 16:31:12 -04:00
a9ace6856d
kernel: remove KWritableEvent
2022-10-12 20:29:29 -04:00
458da8a948
Project Andio
2022-07-22 01:11:32 +01:00
a7d9be1384
core: Replace all instances of ResultCode with Result
2022-06-26 20:21:37 -05:00
084d7d6b01
common: Change semantics of UNREACHABLE to unconditionally crash
2022-06-13 20:09:00 -04:00
99ceb03a1c
general: Convert source file copyright comments over to SPDX
...
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.
2022-04-23 05:55:32 -04:00
bf1750664c
hle: service: Add option for service interfaces to create or use the default thread.
2022-04-02 01:24:30 -04:00
07c9d9bdbd
core: hle: kernel: Use weak_ptr where possible for SessionRequestHandler and SessionRequestManager.
2022-03-14 18:14:53 -07:00
ad53dc22fd
hle: kernel: KServerSession: Simplify CompleteSyncRequest EndWait.
...
- 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.
2022-01-20 17:08:00 -08:00
bea7824bd1
kernel: hle_ipc: Foward declare KAutoObject
2021-10-07 13:32:36 -04:00
08d798b6fe
hle: kernel: hle_ipc: Ensure SessionRequestHandler is valid.
2021-06-07 21:55:37 -07:00
a493ab2678
hle: kernel: Remove service thread manager and use weak_ptr.
...
- 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.
2021-06-07 21:10:51 -07:00
ada4242c01
hle: kernel: k_server_session: Return service thread by strong pointer.
2021-06-06 17:54:06 -07:00
27ce97fd42
hle: kernel: Refactor to allocate a ServiceThread per service handler.
...
- 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 .
2021-06-04 19:26:48 -07:00
f4fe71c1c9
hle: kernel: hle_ipc: Simplify incoming/outgoing move/copy/domain objects.
2021-05-20 21:41:52 -07:00
7361eac10f
hle: kernel: Implement CloneCurrentObject and improve session management.
2021-05-20 21:41:49 -07:00
81a5ecdb18
hle_ipc: Add a getter for PID
2021-05-16 04:10:42 -04:00
12d569e483
hle: kernel: hle_ipc: Fix outgoing IPC response size calculation.
2021-05-11 12:27:43 -07:00
913971417e
hle: kernel: hle_ipc: Improve IPC code and add initial support for TIPC.
...
- Fixes our move handles implementation to actually move objects.
- Simplifies the traditional IPC path.
2021-05-10 20:34:38 -07:00
ed25191ee6
hle: kernel: Further cleanup and add TIPC helpers.
2021-05-10 15:05:10 -07:00
d08bd3e062
hle: ipc_helpers: Update IPC response generation for TIPC.
2021-05-10 15:05:10 -07:00
2f62bae9e3
kernel: Eliminate variable shadowing
...
Now that the large kernel refactor is merged, we can eliminate the
remaining variable shadowing cases.
2021-05-08 12:33:26 -04:00
4b03e6e776
hle: kernel: Migrate to KHandleTable.
2021-05-05 16:40:53 -07:00
2a7eff57a8
hle: kernel: Rename Process to KProcess.
2021-05-05 16:40:52 -07:00
bf380b8584
hle: kernel: Remove deprecated Object class.
2021-05-05 16:40:52 -07:00
626f746971
hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject.
2021-05-05 16:40:52 -07:00
aa2844bcf9
hle: kernel: HandleTable: Remove deprecated APIs.
2021-05-05 16:40:52 -07:00
7444963bbb
hle: kernel: Migrate KSession, KClientSession, and KServerSession to KAutoObject.
2021-05-05 16:40:51 -07:00
5e5933256b
hle: kernel: Refactor IPC interfaces to not use std::shared_ptr.
2021-05-05 16:40:50 -07:00
da7e9553de
hle: kernel: Migrate more of KThread to KAutoObject.
2021-05-05 16:40:50 -07:00
34bed1ab41
hle: kernel: Refactor out various KThread std::shared_ptr usage.
2021-05-05 16:40:50 -07:00
e3e6a11ab8
hle_ipc: Add helper functions to get copy/move handles
2021-04-15 01:53:16 -04:00
3f942c01f0
hle: kernel: Rename WritableEvent to KWritableEvent.
2021-02-05 14:00:36 -08:00
e86a7e3691
hle: kernel: Rename ReadableEvent to KReadableEvent.
2021-02-05 14:00:36 -08:00
cdd14b03e5
hle: kernel: Recode implementation of KThread to be more accurate.
2021-01-28 21:42:26 -08:00
c0d3aef28c
core: hle: kernel: Rename Thread to KThread.
2021-01-28 21:42:25 -08:00
008afa5d59
hle_ipc: Add Can(Read, Write)Buffer
...
Allows us to test whether a buffer can be read from or written to memory
2021-01-28 01:32:24 -05:00
5d4715cc6a
hle: kernel: hle_ipc: Remove SleepClientThread.
...
- This was kind of hacky, and no longer is necessary with service threads.
2020-12-28 16:33:48 -08:00
da7be67daf
ipc_helpers: Remove usage of the global system instance
...
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.
2020-11-08 15:58:11 -05:00
9b75481755
ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer ( #4465 )
...
* 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
2020-08-03 07:28:54 -04:00