Services API: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
 3.0.0 service splits.  | 
				|||
| Line 111: | Line 111: | ||
|  | |  | ||
|-  | |-  | ||
| aoc:u,   | | aoc:u, ovln:rcv, ovln:snd, ns:am2, ns:dev, ns:ec, ns:rid, ns:rt, ns:su, ns:vm, ns:web  | ||
| [[NS Services]]  | | [[NS Services]]  | ||
| am: Application Manager, su: System Update  | | am: Application Manager, su: System Update. Version [[3.0.0]] replaced ns:am with ns:am2, ns:ec, ns:rid, ns:rt, ns:vm, and ns:web.  | ||
|-  | |-  | ||
| apm, apm:p, apm:sys, fgm, fgm:0, fgm:9, (fgm:dbg?)  | | apm, apm:p, apm:sys, fgm, fgm:0, fgm:9, (fgm:dbg?)  | ||
| Line 199: | Line 199: | ||
|  | |  | ||
|-  | |-  | ||
| ldr:pm  | | ldr:pm, ldr:shel  | ||
| [[Loader services]]  | | [[Loader services]]  | ||
|  | | Prior to version [[3.0.0]], ldr:ro and ldr:dmnt were hosted by ldr instead of ro.  | ||
|-  | |-  | ||
| lm  | | lm  | ||
| Line 246: | Line 246: | ||
| PSC services  | | PSC services  | ||
|    | |    | ||
|-  | |||
| ldr:ro, ro:dmnt  | |||
| [[Loader Services|RO services]]  | |||
| These services were split out of LDR into RO in version [[3.0.0]]  | |||
|-  | |-  | ||
| set, set:fd, set:cal, set:sys  | | set, set:fd, set:cal, set:sys  | ||
| [[Settings services]]  | | [[Settings services]]  | ||
| cal: calibration, sys: System Settings  | | cal: calibration, sys: System Settings  | ||
|-  | |||
| mii:u, mii:e, pdm:ntfy, pdm:qry, pl:u  | |||
| Shared Database Services  | |||
| These services were split out of NS into SDB in version [[3.0.0]]  | |||
|-  | |-  | ||
| ssl  | | ssl  | ||
Revision as of 01:33, 16 July 2017
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:". 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.
sm:
| Cmd | Name | 
|---|---|
| 0 | #Initialize | 
| 1 | #GetService | 
| 2 | #RegisterService | 
| 3 | #UnregisterService | 
Initialize
| Word | Value | 
|---|---|
| 0 | 0x00000004 | 
| 1 | 0x8000000A | 
| 2 | 0x00000001 | 
| 0-1 | Pid | 
| 0 | "SFCI" | 
| 1 | 0x00000000 | 
| 2 | Always 0. | 
GetService
| Word | Value | 
|---|---|
| 0 | 0x00000004 | 
| 1 | 0x0000000A | 
| 0 | "SFCI" | 
| 1 | 0x00000001 | 
| 2 | Service name, zero padded and casted to u64. | 
RegisterService
| Word | Value | 
|---|---|
| 0 | 0x00000004 | 
| 1 | 0x0000000C | 
| 0 | "SFCI" | 
| 1 | 0x00000002 | 
| 2 | Service name, zero padded and casted to u64. | 
| 3 | Max sessions? 32-bit integer. | 
| 4 | Unknown bool | 
UnregisterService
| Word | Value | 
|---|---|
| 0 | 0x00000004 | 
| 1 | 0x0000000A | 
| 0 | "SFCI" | 
| 1 | 0x00000003 | 
| 2 | Service name, zero padded and casted to u64. | 
sm:m
This service is presumably equivalent to 3DS "srv:pm".
Service List
| Service names | Description | Notes | 
|---|---|---|
| acc:u0, acc:u1, acc:aa, acc:su | Account services | u0: System, u1: User, su: Admin, aa: Baas | 
| ahid:cd, ahid:hdr, hid, hid:dbg, hid:sys, (htc?), irs, irs:sys, xcd:sys | HID services | |
| appletAE, appletOE, idle:sys, omm, spsm | Applet services, OMM services | |
| aoc:u, ovln:rcv, ovln:snd, ns:am2, ns:dev, ns:ec, ns:rid, ns:rt, ns:su, ns:vm, ns:web | NS Services | am: Application Manager, su: System Update. Version 3.0.0 replaced ns:am with ns:am2, ns:ec, ns:rid, ns:rt, ns:vm, and ns:web. | 
| apm, apm:p, apm:sys, fgm, fgm:0, fgm:9, (fgm:dbg?) | APM services | |
| arp:r, arp:w, bgtc:t, bgtc:sc | Glue services | r: Reader, w: Writer | 
| 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, codecctl, hwopus | Audio services | |
| bcat:a, bcat:u, bcat:m, bcat:s, news:a, news:c, news:m, news:p, news:v, prepo:u, prepo:s, prepo:m, prepo:a | BCAT services | |
| bpc, bpc:r, pcv, pcv:imm, time:u, time:a, time:s | BPC services | |
| bsd:u, bsd:s, bsdcfg, ethc:c, ethc:i, nsd:u, nsd:a, sfdnsres | Sockets services, NSD services | |
| btdrv | Bluetooth Driver services | |
| btm, btm:dbg, btm:sys | Battery services | |
| caps:a, caps:c | Capture services | a: AlbumAccessor, c: AlbumControl | 
| caps:sc, caps:ss, mm:u, vi:m, vi:s, vi:u, cec-mgr | Display services | |
| csrng | Secure RNG services | |
| dispdrv | Nvnflinger services | |
| erpt:c, erpt:r | Error Report services | |
| es | ETicket services | |
| fan, psm, tc, ts | PTM services | |
| fatal:u, fatal:p | Fatal Error services | u: User, p: Privileged | 
| friend:u, friend:v, friend:m, friend:s, friend:a | Friend services | |
| fsp-srv, fsp-ldr, fsp-pr | Filesystem services | srv: Main, ldr: Loader, pr: Program Registry | 
| gpio, i2c, i2c:pcv, pinmux, pwm, uart | Bus services | |
| lbl | Backlight services | |
| ldn:m, ldn:s, ldn:u | Local Network Monitor services | |
| ldr:pm, ldr:shel | Loader services | Prior to version 3.0.0, ldr:ro and ldr:dmnt were hosted by ldr instead of ro. | 
| lm | Log services | |
| lr, ncm, ncm:v | Location Resolver services | |
| nfc:am, nfc:mf:u, nfc:user, nfc:sys | NFC services | |
| nifm:u, nifm:a, nifm:s | Network Interface services | |
| nim, nim:shp, ntc | NIM services | shp: eShop | 
| npns:u, npns:s | NPNS services | |
| nvdrv:a, nvdrv:s, nvdrv:t, nvdrv, nvdrvdbg, nvgem:c, nvgem:cd, nvmemp | NV services | |
| pcie | PCIe services | |
| pctl, pctl:a, pctl:s, pctl:r | Parental Control services | |
| pm:bm, pm:info, pm:shell | Process Manager services | |
| psc:c, psc:m | PSC services | |
| ldr:ro, ro:dmnt | RO services | These services were split out of LDR into RO in version 3.0.0 | 
| set, set:fd, set:cal, set:sys | Settings services | cal: calibration, sys: System Settings | 
| mii:u, mii:e, pdm:ntfy, pdm:qry, pl:u | Shared Database Services | These services were split out of NS into SDB in version 3.0.0 | 
| ssl | SSL services | |
| spl: | SPL services | |
| usb:ds, usb:hs, usb:pd, usb:pd:c, usb:pm | USB services | |
| wlan:inf, wlan:lcl, wlan:lg, wlan:lga, wlan:sg, wlan:soc | WLAN services |