a7d9be1384
core: Replace all instances of ResultCode with Result
2022-06-26 20:21:37 -05: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
a7f73d606f
hle: kernel: Unify and integrate reference tracking for KServerPort/KServerSession.
...
- These are not managed elsewhere, and need to be tracked and closed on emulation shutdown.
2022-04-08 14:13:22 -07:00
d737652d08
hle: service: sm: Remove manual tracking of KServerPorts.
2022-04-08 14:11:39 -07:00
bf1750664c
hle: service: Add option for service interfaces to create or use the default thread.
2022-04-02 01:24:30 -04:00
8873c0c3db
core: hle: service: sm: Fix KPort reference count.
2022-03-14 18:14:53 -07:00
7c4b6aab2e
core: Remove unused includes
2021-11-03 21:42:57 -04:00
cb09ea0f01
general: Remove MakeResult helpers
...
This is made obsolete by the presence of implicit constructors.
2021-11-02 17:23:19 -04:00
7bd020e030
hle: service: sm: Refactor to better manage ports.
2021-07-20 18:54:55 -07:00
c6d7da88c7
service: Append service name prefix to common filenames
2021-07-14 02:09:14 -04:00
781c85b951
hle: service: sm: Remove redundant session reservation, etc.
...
- We were double-reserving, causing us to run out of sessions in Pokemon Sword & Shield.
2021-06-10 11:34:41 -07:00
ec5674a6ad
hle: service: sm: Fix GetService setup of session & port.
2021-06-09 22:29:18 -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
12c1766997
general: Replace RESULT_SUCCESS with ResultSuccess
...
Transition to PascalCase for result names.
2021-06-02 00:39:27 -04:00
7361eac10f
hle: kernel: Implement CloneCurrentObject and improve session management.
2021-05-20 21:41:49 -07:00
c40e7593f5
Revert "WORKAROUND: temp. disable session resource limits while we work out issues"
...
This reverts commit fc086f93b2
.
2021-05-20 21:40:30 -07:00
fc086f93b2
WORKAROUND: temp. disable session resource limits while we work out issues
2021-05-11 10:51:39 -07:00
2c1e119c4a
hle: service: sm: Add TIPC support.
...
- Fixes our error checking of names as well.
2021-05-10 20:34:38 -07:00
49c4c329f6
hle: service: sm: GetService: Reserve session resource when we create a KSession.
2021-05-10 20:34:38 -07:00
934b2d8842
hle: service: sm: Improve Initialize implementation.
2021-05-10 20:34:38 -07:00
44c763f9c6
hle: kernel: KSession: Improve implementation of CloneCurrentObject.
2021-05-10 20:33:53 -07:00
cfed6936f3
hle: service: sm: Increase point buffer size.
2021-05-10 15:43:42 -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
7a06864100
hle: kernel: Migrate KServerPort to KAutoObject.
2021-05-05 16:40:52 -07:00
0297448fbc
hle: kernel: Migrate KClientPort to KAutoObject.
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
6c81332ca7
sm: Use proper names, update to 12.x
2021-04-08 19:40:25 -06:00
35c3c078e3
core: hle: kernel: Update KSynchronizationObject.
2021-01-11 14:23:16 -08:00
1a954b2a59
service: Eliminate usages of the global system instance
...
Completely removes all usages of the global system instance within the
services code by passing in the using system instance to the services.
2020-11-26 20:03:11 -05:00
057aa6275d
service/sm: Slightly more efficient string name validation
...
We can check the end of the string first for null-termination, rather
than the beginning of the string.
2020-09-17 10:54:12 -04:00
78b1bc3b61
service/sm: Eliminate dependency on the global system instance
2020-09-17 10:43:54 -04:00
ffdf8c0cb3
service: Remove two usages of the global system accessor
...
Removes more instances of reliance on global state.
2020-09-07 03:18:45 -04:00
8e86fa7e60
common/concepts: Rename IsBaseOf to DerivedFrom
...
This makes it more inline with its currently unavailable standardized
analogue std::derived_from.
While we're at it, we can also make the template match the requirements
of the standardized variant as well.
2020-08-07 08:09:57 -04:00
6a0b77996b
sm: Make use of IsBaseOf for GetService
2020-08-03 21:46:14 +10:00
a0ee597b19
Merge pull request #4203 from VolcaEM/services
...
service: Update function tables
2020-07-11 00:02:36 -04:00
86946ea13c
Remove duplicate functions
2020-06-29 04:22:38 +02:00
f3630a0713
Use decimal instead of hexadecimal
...
Co-authored-by: David <25727384+ogniK5377@users.noreply.github.com >
2020-06-29 04:21:10 +02:00
6a0010d0c6
service: Update function tables
2020-06-29 04:01:34 +02:00
48fa3b7a0f
General: Cleanup legacy code.
2020-06-27 11:36:05 -04:00
b4dbf1b9c7
Don't fail silently for vi, sm, set and ns services
2020-04-29 11:15:21 +10:00
4afebf26b6
sm/controller: Increase PointerBufferSize
...
This increases the PointerBufferSize as a lager one is required by some services.
This change is still not hw-accurate, but it is proven to work in Ryujinx.
Instead of using a hardcoded size, we should figure out the specific values for each service in the future. Some of them can be taken from Atmosphere: https://github.com/Atmosphere-NX/Atmosphere/search?q=PointerBufferSize .
2020-03-23 03:19:30 +01:00
c3d3b173d3
kernel: Implement a more accurate IPC dispatch.
2019-11-28 12:01:53 -05:00
9046d4a548
kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. ( #3154 )
...
* 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-11-24 20:15:51 -05:00
aa44eb639b
kernel/server_port: Make data members private
...
With this, all kernel objects finally have all of their data members
behind an interface, making it nicer to reason about interactions with
other code (as external code no longer has the freedom to totally alter
internals and potentially messing up invariants).
2019-03-11 10:41:05 -04:00
221613d4ea
kernel/server_session: Make data members private
...
Makes it much nicer to locally reason about server session behavior, as
part of its functionality isn't placed around other classes.
2019-03-05 20:10:07 -05:00
2a533f0067
service/sm: Improve debug log for RegisterService
...
Now it also indicates the name and max session count. This also gives a
name to the unknown bool. This indicates if the created port is supposed
to be using light handles or regular handles internally. This is passed
to the respective svcCreatePort parameter internally.
2018-12-18 18:22:22 -05:00
d8625f5544
hle/service, hle/sm: Compress usages of MakeResult()
...
These auto-deduce the result based off its arguments, so there's no need
to do that work for the compiler, plus, the function return value itself
already indicates what we're returning.
2018-12-06 01:33:22 -05:00
a8269fdae3
hle/service, hle/sm: Use structured bindings where applicable
...
Gets rid of the need to keep the variables separate from their actual
initialization spots.
2018-12-06 01:31:26 -05:00