Zephyron
5ba970b574
service: sm: Update to match official IPC interface
...
Updates the SM service implementation to better match the official
"nn::sm::detail::IUserInterface" interface. Key changes include:
- Replace Initialize with RegisterClient command (cmd 0)
- Add DetachClient command implementation (cmd 4)
- Update service name handling to use u64-encoded names
- Add proper PID descriptor handling for RegisterClient/DetachClient
- Add ResultNotAllowed error code
- Update handler registration for both CMIF and TIPC
This brings the implementation closer to the official documentation while
maintaining compatibility with existing code.
Refs: switchbrew.org/wiki/Services_API#sm:
2025-01-25 15:20:01 +10:00
Zephyron
9ae0eeeb87
Revert incorrect copyright attribution for non-contributed files
...
- In commit b3facaa6bb
, the copyright header was
updated to include "Citron Homebrew Project" across multiple files, regardless
of whether any contributions were made.
- This commit removes the incorrect attribution and reverts the copyright header
to its previous state.
- Copyright attribution should only be added when meaningful contributions have
been made to the file.
- This commit ensures proper compliance with copyright standards and maintains
correct attribution to the respective contributors.
- Special thanks to Tachi for pointing out the need for these corrections and
ensuring that proper attribution practices are followed.
2025-01-14 15:33:24 +10:00
Zephyron
b3facaa6bb
chore: update project references and add Citron copyright
...
- Replaced all references to the old project name with Citron.
- Added Citron copyright information alongside existing notices in all files.
2024-12-31 17:07:49 +10:00
Liam
31bf57a310
general: properly support multiple memory instances
2023-12-22 21:52:49 -05:00
liamwhite
24e7ace876
Merge pull request #12327 from liamwhite/tipc
...
sm:: fix tipc deserialization
2023-12-10 18:17:04 -05:00
liamwhite
108737fcc6
Merge pull request #12321 from liamwhite/ro2
...
ro: add separate ro service
2023-12-10 18:16:50 -05:00
Liam
a529ef4c09
sm:: fix tipc deserialization
2023-12-09 22:56:21 -05:00
Liam
34e4012998
service: use interface factory in server manager
2023-12-09 13:45:25 -05:00
Liam
40bb176c39
kernel: implement remaining IPC syscalls
2023-12-06 17:33:00 -05:00
Liam
84cb20bc72
core: remove ResultVal type
2023-08-08 11:09:37 -04:00
Liam
1b5c87ab6a
kernel: match calls to Register and Unregister
2023-04-29 21:52:26 -04:00
Liam
097c25b164
kernel: convert KPort, KSession
2023-03-12 22:06:53 -04:00
Liam
1d0fe75e7c
hle: rename legacy errors to Results
2023-03-06 20:58:42 -05:00
Liam
65be230fdd
service: move hle_ipc from kernel
2023-03-01 10:39:49 -05:00
Liam
72e5552409
sm:: fix lingering session initialization issues
2023-02-21 12:19:25 -05:00
Liam
6e0a33089b
sm:: support service registration deferral
2023-02-21 12:19:25 -05:00
Liam
a936972614
service: refactor server architecture
...
Converts services to have their own processes
2023-02-21 12:19:25 -05:00
Liam
77b74f5d95
sm:: avoid excessive port recreation
2022-10-31 17:47:39 -04:00
Liam
983f2b7074
kernel: invert session request handling flow
2022-10-31 17:44:06 -04:00
Liam
4e9adae5da
kernel: more complete fix for KPort reference counting
2022-10-31 08:23:29 -04:00
Liam
d867ae5ab6
k_server_session: fix crashes
2022-10-29 23:05:56 -04:00
Liam
61a8696510
k_server_session: preliminary support for userspace server sessions
2022-10-11 18:40:40 -04:00
german77
a7d9be1384
core: Replace all instances of ResultCode with Result
2022-06-26 20:21:37 -05:00
Morph
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
bunnei
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
bunnei
d737652d08
hle: service: sm: Remove manual tracking of KServerPorts.
2022-04-08 14:11:39 -07:00
bunnei
bf1750664c
hle: service: Add option for service interfaces to create or use the default thread.
2022-04-02 01:24:30 -04:00
bunnei
8873c0c3db
core: hle: service: sm: Fix KPort reference count.
2022-03-14 18:14:53 -07:00
ameerj
7c4b6aab2e
core: Remove unused includes
2021-11-03 21:42:57 -04:00
Morph
cb09ea0f01
general: Remove MakeResult helpers
...
This is made obsolete by the presence of implicit constructors.
2021-11-02 17:23:19 -04:00
bunnei
7bd020e030
hle: service: sm: Refactor to better manage ports.
2021-07-20 18:54:55 -07:00
Morph
c6d7da88c7
service: Append service name prefix to common filenames
2021-07-14 02:09:14 -04:00
bunnei
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
bunnei
ec5674a6ad
hle: service: sm: Fix GetService setup of session & port.
2021-06-09 22:29:18 -07:00
bunnei
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
Morph
12c1766997
general: Replace RESULT_SUCCESS with ResultSuccess
...
Transition to PascalCase for result names.
2021-06-02 00:39:27 -04:00
bunnei
7361eac10f
hle: kernel: Implement CloneCurrentObject and improve session management.
2021-05-20 21:41:49 -07:00
bunnei
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
bunnei
fc086f93b2
WORKAROUND: temp. disable session resource limits while we work out issues
2021-05-11 10:51:39 -07:00
bunnei
2c1e119c4a
hle: service: sm: Add TIPC support.
...
- Fixes our error checking of names as well.
2021-05-10 20:34:38 -07:00
bunnei
49c4c329f6
hle: service: sm: GetService: Reserve session resource when we create a KSession.
2021-05-10 20:34:38 -07:00
bunnei
934b2d8842
hle: service: sm: Improve Initialize implementation.
2021-05-10 20:34:38 -07:00
bunnei
bf380b8584
hle: kernel: Remove deprecated Object class.
2021-05-05 16:40:52 -07:00
bunnei
626f746971
hle: kernel: Migrate KPort, KClientPort, and KServerPort to KAutoObject.
2021-05-05 16:40:52 -07:00
bunnei
7a06864100
hle: kernel: Migrate KServerPort to KAutoObject.
2021-05-05 16:40:52 -07:00
bunnei
0297448fbc
hle: kernel: Migrate KClientPort to KAutoObject.
2021-05-05 16:40:52 -07:00
bunnei
7444963bbb
hle: kernel: Migrate KSession, KClientSession, and KServerSession to KAutoObject.
2021-05-05 16:40:51 -07:00
bunnei
5e5933256b
hle: kernel: Refactor IPC interfaces to not use std::shared_ptr.
2021-05-05 16:40:50 -07:00
german77
6c81332ca7
sm: Use proper names, update to 12.x
2021-04-08 19:40:25 -06:00
bunnei
35c3c078e3
core: hle: kernel: Update KSynchronizationObject.
2021-01-11 14:23:16 -08:00