Services are system processes running in the background which wait for incoming requests. When a process wants to communicate with a service, it first needs to get a handle to the named service, and then it can communicate with the service via inter-process communication (each service has a name up to 8 characters).
Handles for services are retrieved from the service manager port, "sm:", and are released via svcCloseHandle or when a process is terminated or crashes. Manager service "sm:m" also exists. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC. Services are also able to limit the number of handles given to other processes.
This is "nn::sm::detail::IUserInterface".
Cmd | Name |
---|---|
0 | #Initialize |
1 | #GetService |
2 | #RegisterService |
3 | #UnregisterService |
Takes a pid descriptor and a reserved input u64.
Takes a zero-padded service name encoded as an u64 integer. Returns a handle.
Takes a zero-padded service name encoded as an u64 integer, an u8 bool, and an u32 (session count) at the next word. Returns a handle.
Takes a zero-padded service name encoded as an u64 integer.
This is "nn::sm::detail::IManagerInterface".
Cmd | Name |
---|---|
0 | #RegisterProcess |
1 | #UnregisterProcess |
Takes a pid and two A descriptors with the ACID and ACI0 service lists. That data originates from NPDM.
Takes a pid.
Service names |
Description |
Notes |
---|---|---|
acc:u0, acc:u1, acc:aa, acc:su, [5.0.0+] dauth:0 |
u0: System, u1: User, su: Admin, aa: Baas |
|
[1.0.0-8.1.0] ahid:cd, [1.0.0-8.1.0] ahid:hdr, hid, hid:dbg, hid:sys, irs, irs:sys, xcd:sys, [3.0.0-7.0.1] hid:tmp, [5.0.0+] hidbus |
||
appletAE, appletOE, idle:sys, omm, spsm, [5.0.0+] tcap, [6.0.0+] caps:su, [8.0.0+] apm |
||
[1.0.0-2.3.0] aoc:u, mii:u, mii:e, ns:am, ns:su, ns:dev, pl:u, ovln:rcv, ovln:snd, pdm:ntfy, pdm:qry [3.0.0+] aoc:u, ns:am2, ns:dev, ns:ec, ns:rid, ns:rt, ns:su, ns:vm, ns:web, [1.0.0-7.0.1] ovln:rcv, [1.0.0-7.0.1] ovln:snd |
am: Application Manager, su: System Update |
|
[1.0.0-8.1.0] apm:dbg, [1.0.0-8.1.0] apm:sys, [1.0.0-8.1.0] fgm, [1.0.0-8.1.0] fgm:0, [1.0.0-8.1.0] fgm:9, [1.0.0-8.1.0] fgm:dbg, [1.0.0-7.0.1] apm, [1.0.0-7.0.1] apm:p, [8.0.0-8.1.0] apm:am |
fgm:1, fgm:2, fgm:3, fgm:4, fgm:5, fgm:6 and fgm:7 used to exist, but are now deprecated. |
|
arp:r, arp:w, [2.0.0+] bgtc:t, [2.0.0+] bgtc:sc, [9.0.0+] time:a, [9.0.0+] time:r, [9.0.0+] time:u, [9.0.0+] notif:a, [9.0.0+] notif:s |
||
audin:a, audin:d, audin:u, audout:a, audout:d, audout:u, audren:a, audren:d, audren:u, audrec:a, audrec:d, audrec:u, audctl, [1.0.0-2.3.0] codecctl, hwopus, auddebug, [6.0.0+] auddev |
||
banana |
Not currently available on retail units. |
|
[2.0.0+] bcat:a, [2.0.0+] bcat:u, [2.0.0+] bcat:m, [2.0.0+] bcat:s, news:a, news:c, news:m, news:p, news:v, prepo:u, prepo:s, prepo:m, [1.0.0-5.1.0] prepo:a, [1.0.0] prepo:d, [6.0.0+] prepo:a2 |
||
[1.0.0] bpc:c, bpc:b, bpc:r, bpc:w, pcv, pcv:arb, pcv:imm, time:u, time:a, time:s [2.0.0+] bpc, bpc:r, pcv, [2.0.0-8.1.0] time:u, [2.0.0-8.1.0] time:a, [2.0.0-8.1.0] time:s, [1.0.0-7.0.1] pcv:arb, [1.0.0-7.0.1] pcv:imm, [8.0.0+] clkrst, [8.0.0+] clkrst:a, [8.0.0+] clkrst:i, [8.0.0+] rgltr, [8.0.0+] rtc |
||
bsd:u, bsd:s, bsdcfg, ethc:c, ethc:i, nsd:u, nsd:a, sfdnsres |
||
btdrv, [5.0.0+] bt |
||
btm, btm:dbg, btm:sys, [5.0.0+] btm:u |
||
caps:a, caps:c, [1.0.0] mm:u, [5.0.0+] caps:u |
a: AlbumAccessor, c: AlbumControl |
|
[2.0.0+] caps:sc, [2.0.0+] caps:ss, vi:m, vi:s, vi:u, cec-mgr, [2.0.0+] mm:u, [3.0.0-5.1.0] caps:su |
||
dispdrv |
||
dmnt:- |
Not currently available on retail units. |
|
erpt:c, erpt:r |
||
eupld:c, eupld:r |
||
es |
||
fan, psm, tc, ts, pcm, [9.0.0+] apm:sys, [9.0.0+] fgm, [9.0.0+] fgm:0, [9.0.0+] fgm:9, [9.0.0+] fgm:dbg, [9.0.0+] apm:am |
pcm is not available on retail units. |
|
fatal:u, fatal:p |
||
friend:u, friend:v, friend:m, friend:s, friend:a, [5.0.0-6.0.0] nd:app, [5.0.0-6.0.0] nd:sys |
||
fsp-srv, fsp-ldr, fsp-pr |
srv: Main, ldr: Loader, pr: Program Registry |
|
gpio, i2c, i2c:pcv, pinmux, pwm, uart, [3.0.0+] sasbus, [9.0.0+] led |
||
htc, htcs, htc:tenv, file_io, gds, tma_log, tmagent |
||
jit:u |
Not currently available on retail units. |
|
lbl |
||
ldn:m, ldn:s, ldn:u, [5.0.0-6.0.0] ndd, [9.0.0+] lp2p:app, [9.0.0+] lp2p:sys |
||
[1.0.0+] ldr:pm, ldr:ro, ldr:shel, ldr:dmnt [3.0.0+] ldr:pm, ldr:shel, ldr:dmnt |
||
lm, lm:get |
||
manu |
"Manufacturing", present in factory firmware but not installed on retail systems. |
|
lr, ncm, ncm:v |
||
nfc:am, nfc:mf:u, nfc:user, nfc:sys, nfp:user, nfp:dbg, nfp:sys |
||
nifm:u, nifm:a, nifm:s |
||
nim, nim:shp, ntc, [5.0.0+] nim:eca, [7.0.0+] nim:ecas |
||
npns:u, npns:s |
||
nvdrv:a, nvdrv:s, nvdrv:t, nvdrv, nvdrvdbg, nvgem:c, nvgem:cd, nvmemp |
||
pcie, [6.0.0+] pcie:log |
||
pctl, pctl:a, pctl:s, pctl:r |
||
pm:bm, pm:info, pm:shell |
||
psc:c, psc:m, [5.0.0+] srepo:u, [5.0.0+] srepo:a, [8.0.0+] ovln:rcv, [8.0.0+] ovln:snd, [9.0.0+] psc:l, [9.0.0+] time:su, [9.0.0+] time:s, [9.0.0+] time:al, [9.0.0+] time:m, [9.0.0+] time:p, [9.0.0+] ins:r, [9.0.0+] ins:s |
||
[3.0.0+] ldr:ro, ro:dmnt, [7.0.0+] ro:1 |
||
set, set:fd, set:cal, set:sys |
cal: calibration, sys: System Settings |
|
[3.0.0+] mii:u, [3.0.0+] mii:e, [3.0.0+] pdm:ntfy, [3.0.0+] pdm:qry, [3.0.0+] pl:u, [5.0.0+] miiimg, [6.0.0+] avm, [9.0.0+] pl:s |
||
ssl |
||
csrng, spl:, [4.0.0+] spl:mig, [4.0.0+] spl:fs, [4.0.0+] spl:ssl, [4.0.0+] spl:es, [5.0.0+] spl:manu |
||
sf-uds |
? |
System debug applet "recovery" has access to this service, but it doesn't appear to exist. |
tspm |
? |
Applications on [1.0.0] used to have access to this service, but it doesn't appear to be present on retail devices. |
usb:ds, usb:hs, usb:pd, usb:pd:c, [1.0.0] usb:pd:m, usb:pm, [7.0.0+] usb:hs:a, [7.0.0+] usb:qdb, [8.0.0+] usb:obsv |
||
wlan:inf, wlan:lcl, wlan:lg, wlan:lga, wlan:sg, wlan:soc, [6.0.0+] wlan:dtc |
||
[4.0.0+] grc:c, [6.0.0+] grc:d |
||
[4.0.0+] mig:usr |
||
[4.0.0+] caps:dc |
||
[6.0.0+] olsc:s |
||
[9.0.0+] ngct:s, [9.0.0+] ngct:u |
Category:Services