2026-11-01 ipc-depth-sys (batch 2026-11-01-r2, mac)¶
A command with no row stops the runtime (ipc.c unimplemented). This item wrote per-interface reference lists for the system / offline half of the services and added a row for every application-reachable command that had none.
Reference fixtures (runtime/tests/ipc_reference/<interface>.txt, 69 files)¶
Format shared with ipc-depth-hid: first line # interface <name> (<source>), then id<TAB>name<TAB>min_fw<TAB>app_reachable(y|n). Built from the switchbrew service tables (command ids, names, firmware introduced; layout facts only, nothing copied from GPL code): fsp-srv, IFileSystem / IFile / IDirectory / IStorage / ISaveDataInfoReader, vi:u + IApplicationDisplayService (+ the system / manager display services, n), time:u + ISystemClock / ISteadyClock / ITimeZoneService, acc:u0 + IProfile + IManagerForApplication, aoc:u, ns:am2 / ns:vm / ncm / IContentStorage / IContentMetaDatabase (n), pdm:qry, pl:u, mii:u + IDatabaseService, miiimg (n), olsc:u (+ controllers n), bcat:u + IBcatService + the delivery cache services, caps:u / caps:su / IAlbumAccessorApplicationSession, ldn:u + IUserLocalCommunicationService, nifm:u + IGeneralService + IRequest, friend:u + IFriendService + INotificationService, prepo:u, nsd:u, bsd:u, sfdnsres, ssl + ISslContext + ISslConnection, lm + ILogger, pctl + IParentalControlService, ngc:u, ectx:aw, ovln:snd + ISender, mm:u, npns:u, notif:a, mnpp:app, ngct:u, nim:eca. Commands removed before 22.1.0 are left out.
app_reachable is a judgement, not a table the wiki has: y for the interfaces a retail application can reach (the services in the application access list) except commands that are system / development only (names with Debug / Test / Emulation / Rewrite / Telemetry / ForSystem / ForViewer, Unknown and Switch-2-only rows), with explicit allow lists for the large mixed interfaces (fsp-srv: save data, rom, SD card and cache storage commands; time:u / ITimeZoneService / ISteadyClock / ISystemClock: the SDK-visible ids; IFriendService: the 10100..29999 groups; IParentalControlService: the confirm / safety-level / play-timer / feature groups; IDatabaseService: the commands of the mii:u table).
Rows added (about 335)¶
runtime/src/services/sys_default.h holds the documented safe defaults; every row that uses them is IPC_STUB:
- sysd_ok (99): success, no output (Set* / Register* / Notify* and permission confirmations of an unrestricted offline console);
- sysd_zN (42): success with N zero bytes (a getter whose answer is false / none / 0; sizes from the wiki's "Returns" text or the SDK layout);
- sysd_event (4): a readable event that never fires;
- error results (154): sysd_err_net (nifm, bcat: the no-network result), sysd_err_friend (no network service account), sysd_err_ssl (not connected), sysd_err_ldn (no network), sysd_err_generic (the sf unknown-command result, what NAPPLE_IPC_LENIENT answers) for object / buffer / handle returning commands the console cannot back. The SDK sees a failed call and the runtime keeps running.
Per service: fsp-srv +41 (e.g. 0/7/10 OpenFileSystem*, 31 OpenGameCardFileSystem, 67/68 save data info with filter, 81..87 transfer managers, 606/610/612/618/631/800/1011/1012), IFileSystem/IFile/IStorage query / operate-range rows, IApplicationDisplayService +7, time +4, acc:u0 / IManagerForApplication +16, aoc:u +7, pdm:qry +9, pl:u, olsc:u +6, IBcatService +13, caps:u +5 and the album movie session, ldn / IUserLocalCommunicationService +11, nifm IGeneralService +44 / IRequest +11, IFriendService +54, prepo:u, nsd:u, bsd:u +10, sfdnsres +8, ssl / ISslContext / ISslConnection +39, ILogger, IParentalControlService +29 (rows 1006..1603 are implemented documented answers of a console with parental controls off, not stubs), ngc:u, ISender, npns:u (+10 ids past the generous range of push.c), notif:a (+6).
Tests¶
test_svc_sysdef_offline.c (new: offline answers + no duplicate ids in every offline table), test_svc_time.c, test_svc_pctl.c (aoc default rows now expected as documented defaults), test_svc_bcat.c extended. make -C runtime test and test-services green.