Difference between revisions of "Services API"
WulfyStylez (talk | contribs) |
m (Replace service links with new Template:Service) |
||
(16 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
− | Nintendo provides application developers with an API, which communicate with certain services. Services, in this sense, 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 interprocess communication. Each service has a name up to 8 characters, for example | + | Nintendo provides application developers with an API, which communicate with certain services. Services, in this sense, are [[Title_list#00040130_-_System_Modules|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 interprocess communication. Each service has a name up to 8 characters, for example {{Service|nim:u}}. |
− | Handles for services are retrieved from the service manager port, | + | Handles for services are retrieved from the [[Services|service manager port]], <code>srv:</code>. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC. |
For a description of how commands and arguments are passed to services, see [[IPC Command Structure]]. | For a description of how commands and arguments are passed to services, see [[IPC Command Structure]]. | ||
− | List of services: | + | List of services (grouped by the process which provides them): |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 15: | Line 15: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Filesystem services]] | | [[Filesystem services]] | ||
− | | fs:USER, fs:LDR, fs:REG | + | | {{Service|fs:USER}}, {{Service|fs:LDR}}, {{Service|fs:REG}} |
− | | | + | | USER: normal applications and system modules, LDR: loader, REG: register |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Process Services]] | | [[Process Services]] | ||
− | | | + | | {{Service|ps:ps}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[PXI Services]] | | [[PXI Services]] | ||
− | | PxiFS0, PxiFS1, PxiFSB, PxiFSR, PxiPM, pxi:am9, pxi:dev, pxi:mc, pxi:ps9 | + | | {{Service|PxiFS0}}, {{Service|PxiFS1}}, {{Service|PxiFSB}}, {{Service|PxiFSR}}, {{Service|PxiPM}}, {{Service|pxi:am9}}, {{Service|pxi:dev}}, {{Service|pxi:mc}}, {{Service|pxi:ps9}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Application Manager Services]] | | [[Application Manager Services]] | ||
− | | am:app, am:net, am:u, am:sys, am:pipe | + | | {{Service|am:app}}, {{Service|am:net}}, {{Service|am:u}}, {{Service|am:sys}}, {{Service|am:pipe}} |
− | | | + | | app: am for applications, net: network installation ([[NIM_Services|nim]]), u: local installation, sys: am for system titles, pipe: not an actual port (internally used to represent the [[Application_Manager_Services#File_service|FSFile-like interface]]) |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Process Manager Services]] | | [[Process Manager Services]] | ||
− | | pm:app, pm:dbg | + | | {{Service|pm:app}}, {{Service|pm:dbg}} |
− | | | + | | app: launching titles, dbg: launching titles with debugging enabled |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[NIM Services]] | | [[NIM Services]] | ||
− | | nim:aoc, nim:ndm, nim:s, nim:u | + | | {{Service|nim:aoc}}, {{Service|nim:ndm}}, {{Service|nim:s}}, {{Service|nim:u}} |
− | | | + | | aoc: DLC, ndm: for [[NDM Services|ndm]], s: for eShop, u: for updater |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Config Services]] | | [[Config Services]] | ||
− | | | + | | {{Service|cfg:u}}, {{Service|cfg:s}}, {{Service|cfg:i}}, {{Service|cfg:nor}} |
− | | | + | | u: for user, s: for system, i: for initialization/formatting, nor: accesses wifi SPI flash |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[NS|NS and APT Services]] | | [[NS|NS and APT Services]] | ||
− | | ns:s, ns:p, ns:c, APT:A, APT:S, APT:U | + | | {{Service|ns:s}}, {{Service|ns:p}}, {{Service|ns:c}}, {{Service|APT:A}}, {{Service|APT:S}}, {{Service|APT:U}} |
− | | | + | | ns:s: for system, ns:p: power (shutdown/reboot), ns:c: ?, APT:A: application, APT:S: system, APT:U: user |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[RO Services]] | | [[RO Services]] | ||
− | | ldr:ro | + | | {{Service|ldr:ro}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[NDM Services]] | | [[NDM Services]] | ||
− | | | + | | {{Service|ndm:u}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[CSND Services]] | | [[CSND Services]] | ||
− | | csnd:SND | + | | {{Service|csnd:SND}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Camera Services]] | | [[Camera Services]] | ||
− | | cam:u, y2r:u, cam:s, cam:c, cam:q (New3DS only) | + | | {{Service|cam:u}}, {{Service|y2r:u}}, {{Service|cam:s}}, {{Service|cam:c}}, {{Service|cam:q}} (New3DS only) |
− | | | + | | |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Codec Services]] | | [[Codec Services]] | ||
− | | cdc:HID, cdc:MIC, cdc:CSN, cdc:DSP, cdc:LGY, cdc:CHK | + | | {{Service|cdc:HID}}, {{Service|cdc:MIC}}, {{Service|cdc:CSN}}, {{Service|cdc:DSP}}, {{Service|cdc:LGY}}, {{Service|cdc:CHK}} |
− | | | + | | HID: human interface device, MIC: microphone, CSN: for [[CSND_Services|csnd]]?, DSP: for [[DSP_Services|dsp]]?, LGY: legacy (some kind of backwards compat?), CHK: ? |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[DLP Services]] | | [[DLP Services]] | ||
− | | dlp:CLNT, dlp:FKCL, dlp:SRVR | + | | {{Service|dlp:CLNT}}, {{Service|dlp:FKCL}}, {{Service|dlp:SRVR}} |
− | | | + | | CLNT: client, FKCL: fake client, SRVR: server |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[DSP Services]] | | [[DSP Services]] | ||
− | | dsp::DSP | + | | {{Service|dsp::DSP}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[GSP Services]] | | [[GSP Services]] | ||
− | | gsp::Lcd, gsp::Gpu | + | | {{Service|gsp::Lcd}}, {{Service|gsp::Gpu}} |
− | | | + | | Lcd: LCD control, Gpu: GPU control |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[BOSS Services]] | | [[BOSS Services]] | ||
− | | boss:U | + | | {{Service|boss:U}}, {{Service|boss:P}}, {{Service|boss:M}} |
− | | | + | | U: user, P: privileged, M: for [[NDM Services|ndm]] |
+ | |- | ||
+ | | style="background: green" | Yes | ||
+ | | [[CECD Services]] | ||
+ | | {{Service|cecd:u}}, {{Service|cecd:s}}, {{Service|cecd:ndm}} | ||
+ | | u: user, s: system, ndm: for [[NDM Services|ndm]] | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[IR Services]] | | [[IR Services]] | ||
− | | | + | | {{Service|ir:u}}, {{Service|ir:USER}}, {{Service|ir:rst}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[I2C Services]] | | [[I2C Services]] | ||
− | | i2c::MCU, i2c::CAM, i2c::LCD, i2c::DEB, i2c::HID, i2c::IR, i2c::EEP | + | | {{Service|i2c::MCU}}, {{Service|i2c::CAM}}, {{Service|i2c::LCD}}, {{Service|i2c::DEB}}, {{Service|i2c::HID}}, {{Service|i2c::IR}}, {{Service|i2c::EEP}}, {{Service|i2c::NFC}}, {{Service|i2c::QTM}} |
− | | | + | | |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[GPIO Services]] | | [[GPIO Services]] | ||
− | | gpio:CDC, gpio:MCU, gpio:HID, gpio:NWM, gpio:IR | + | | {{Service|gpio:CDC}}, {{Service|gpio:MCU}}, {{Service|gpio:HID}}, {{Service|gpio:NWM}}, {{Service|gpio:IR}}, {{Service|gpio:NFC}}, {{Service|gpio:QTM}} |
− | | | + | | |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[HID Services]] | | [[HID Services]] | ||
− | | hid:NFC, hid:QTM, hid:SPVR, hid:USER | + | | {{Service|hid:NFC}}, {{Service|hid:QTM}}, {{Service|hid:SPVR}}, {{Service|hid:USER}} |
− | | | + | | NFC: near-field communication (amiibo), QTM: head tracking device (related to [[QTM_Services|QTM Services]])?, SPVR: system privileged? |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[PTM Services]] | | [[PTM Services]] | ||
− | | ptm:gets, ptm:play, ptm:s, ptm:sets, ptm:sysm, ptm:u | + | | {{Service|ptm:gets}}, {{Service|ptm:play}}, {{Service|ptm:s}}, {{Service|ptm:sets}}, {{Service|ptm:sysm}}, {{Service|ptm:u}} |
− | | | + | | gets: get system time, play: play history, s: system, sets: set system time, sysm: system menu (homemenu/testmenu), u: user |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[NWM Services]] | | [[NWM Services]] | ||
− | | nwm::UDS | + | | {{Service|nwm::CEC}}, {{Service|nwm::EXT}}, {{Service|nwm::INF}}, {{Service|nwm::SAP}}, {{Service|nwm::SOC}}, {{Service|nwm::TST}}, {{Service|nwm::UDS}} |
− | | | + | | CEC: streetpass, EXT: ?, INF: infrastructure, SAP: ?, SOC: socket, UDS: local WLAN, TST: ? |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[HTTP Services]] | | [[HTTP Services]] | ||
− | | http:C | + | | {{Service|http:C}} |
− | | | + | | C: connection |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[SSL Services]] | | [[SSL Services]] | ||
− | | ssl:C | + | | {{Service|ssl:C}} |
− | | | + | | C: connection |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Socket Services]] | | [[Socket Services]] | ||
− | | soc:P, soc:U | + | | {{Service|soc:P}}, {{Service|soc:U}} |
− | | | + | | P: privileged, U: user |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[AC Services]] | | [[AC Services]] | ||
− | | ac:i, ac:u | + | | {{Service|ac:i}}, {{Service|ac:u}} |
− | | | + | | i: internal, u: user |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Friend Services]] | | [[Friend Services]] | ||
− | | frd:a, frd:u | + | | {{Service|frd:a}}, {{Service|frd:n}}, {{Service|frd:u}} |
− | | | + | | a: admin, n: for [[NDM Services|ndm]], u: user |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[News Services]] | | [[News Services]] | ||
− | | | + | | {{Service|news:s}}, {{Service|news:u}} |
− | | | + | | s: system, u:user |
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[PDN Services]] | | [[PDN Services]] | ||
+ | | {{Service|pdn:s}}, {{Service|pdn:d}}, {{Service|pdn:i}}, {{Service|pdn:g}}, {{Service|pdn:c}} | ||
| | | | ||
− | |||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[SPI Services]] | | [[SPI Services]] | ||
− | | | + | | {{Service|SPI::NOR}}, {{Service|SPI::CD2}}, {{Service|SPI::CS2}}, {{Service|SPI::CS3}}, {{Service|SPI::DEF}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Loader Services]] | | [[Loader Services]] | ||
− | | | + | | {{Service|Loader}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[MCU Services]] | | [[MCU Services]] | ||
− | | mcu::CAM, mcu::GPU, mcu::HID, mcu::RTC, mcu::SND, mcu::NWM, mcu::HWC, mcu::PLS, mcu::CDC | + | | {{Service|mcu::CAM}}, {{Service|mcu::GPU}}, {{Service|mcu::HID}}, {{Service|mcu::RTC}}, {{Service|mcu::SND}}, {{Service|mcu::NWM}}, {{Service|mcu::HWC}}, {{Service|mcu::PLS}}, {{Service|mcu::CDC}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[MIC Services]] | | [[MIC Services]] | ||
− | | mic:u | + | | {{Service|mic:u}} |
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[ACT Services]] | | [[ACT Services]] | ||
− | | act:a, act:u | + | | {{Service|act:a}}, {{Service|act:u}} |
− | | | + | | a: admin, u: user |
+ | |- | ||
+ | | style="background: green" | Yes | ||
+ | | [[MP Services]] | ||
+ | | {{Service|mp:u}} | ||
+ | | | ||
|- | |- | ||
− | | style="background: | + | | style="background: green" | Yes |
| [[NFC Services]] | | [[NFC Services]] | ||
− | | | + | | {{Service|nfc:dev}}, {{Service|nfc:m}}, {{Service|nfc:p}}, {{Service|nfc:r}}, {{Service|nfc:s}}, {{Service|nfc:u}} |
− | | | + | | dev: developer, m: ? p: passthrough?, r: raw?, s: system, u: user |
|- | |- | ||
| style="background: red" | No | | style="background: red" | No |
Latest revision as of 13:31, 18 September 2024
Nintendo provides application developers with an API, which communicate with certain services. Services, in this sense, 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 interprocess communication. Each service has a name up to 8 characters, for example nim:u.
Handles for services are retrieved from the service manager port, srv:
. Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC.
For a description of how commands and arguments are passed to services, see IPC Command Structure.
List of services (grouped by the process which provides them):
Old3ds | Services | Service names | Notes |
---|---|---|---|
Yes | Filesystem services | fs:USER, fs:LDR, fs:REG | USER: normal applications and system modules, LDR: loader, REG: register |
Yes | Process Services | ps:ps | |
Yes | PXI Services | PxiFS0, PxiFS1, PxiFSB, PxiFSR, PxiPM, pxi:am9, pxi:dev, pxi:mc, pxi:ps9 | |
Yes | Application Manager Services | am:app, am:net, am:u, am:sys, am:pipe | app: am for applications, net: network installation (nim), u: local installation, sys: am for system titles, pipe: not an actual port (internally used to represent the FSFile-like interface) |
Yes | Process Manager Services | pm:app, pm:dbg | app: launching titles, dbg: launching titles with debugging enabled |
Yes | NIM Services | nim:aoc, nim:ndm, nim:s, nim:u | aoc: DLC, ndm: for ndm, s: for eShop, u: for updater |
Yes | Config Services | cfg:u, cfg:s, cfg:i, cfg:nor | u: for user, s: for system, i: for initialization/formatting, nor: accesses wifi SPI flash |
Yes | NS and APT Services | ns:s, ns:p, ns:c, APT:A, APT:S, APT:U | ns:s: for system, ns:p: power (shutdown/reboot), ns:c: ?, APT:A: application, APT:S: system, APT:U: user |
Yes | RO Services | ldr:ro | |
Yes | NDM Services | ndm:u | |
Yes | CSND Services | csnd:SND | |
Yes | Camera Services | cam:u, y2r:u, cam:s, cam:c, cam:q (New3DS only) | |
Yes | Codec Services | cdc:HID, cdc:MIC, cdc:CSN, cdc:DSP, cdc:LGY, cdc:CHK | HID: human interface device, MIC: microphone, CSN: for csnd?, DSP: for dsp?, LGY: legacy (some kind of backwards compat?), CHK: ? |
Yes | DLP Services | dlp:CLNT, dlp:FKCL, dlp:SRVR | CLNT: client, FKCL: fake client, SRVR: server |
Yes | DSP Services | dsp::DSP | |
Yes | GSP Services | gsp::Lcd, gsp::Gpu | Lcd: LCD control, Gpu: GPU control |
Yes | BOSS Services | boss:U, boss:P, boss:M | U: user, P: privileged, M: for ndm |
Yes | CECD Services | cecd:u, cecd:s, cecd:ndm | u: user, s: system, ndm: for ndm |
Yes | IR Services | ir:u, ir:USER, ir:rst | |
Yes | I2C Services | i2c::MCU, i2c::CAM, i2c::LCD, i2c::DEB, i2c::HID, i2c::IR, i2c::EEP, i2c::NFC, i2c::QTM | |
Yes | GPIO Services | gpio:CDC, gpio:MCU, gpio:HID, gpio:NWM, gpio:IR, gpio:NFC, gpio:QTM | |
Yes | HID Services | hid:NFC, hid:QTM, hid:SPVR, hid:USER | NFC: near-field communication (amiibo), QTM: head tracking device (related to QTM Services)?, SPVR: system privileged? |
Yes | PTM Services | ptm:gets, ptm:play, ptm:s, ptm:sets, ptm:sysm, ptm:u | gets: get system time, play: play history, s: system, sets: set system time, sysm: system menu (homemenu/testmenu), u: user |
Yes | NWM Services | nwm::CEC, nwm::EXT, nwm::INF, nwm::SAP, nwm::SOC, nwm::TST, nwm::UDS | CEC: streetpass, EXT: ?, INF: infrastructure, SAP: ?, SOC: socket, UDS: local WLAN, TST: ? |
Yes | HTTP Services | http:C | C: connection |
Yes | SSL Services | ssl:C | C: connection |
Yes | Socket Services | soc:P, soc:U | P: privileged, U: user |
Yes | AC Services | ac:i, ac:u | i: internal, u: user |
Yes | Friend Services | frd:a, frd:n, frd:u | a: admin, n: for ndm, u: user |
Yes | News Services | news:s, news:u | s: system, u:user |
Yes | PDN Services | pdn:s, pdn:d, pdn:i, pdn:g, pdn:c | |
Yes | SPI Services | SPI::NOR, SPI::CD2, SPI::CS2, SPI::CS3, SPI::DEF | |
Yes | Loader Services | Loader | |
Yes | MCU Services | mcu::CAM, mcu::GPU, mcu::HID, mcu::RTC, mcu::SND, mcu::NWM, mcu::HWC, mcu::PLS, mcu::CDC | |
Yes | MIC Services | mic:u | |
Yes | ACT Services | act:a, act:u | a: admin, u: user |
Yes | MP Services | mp:u | |
Yes | NFC Services | nfc:dev, nfc:m, nfc:p, nfc:r, nfc:s, nfc:u | dev: developer, m: ? p: passthrough?, r: raw?, s: system, u: user |
No | MVD Services | ||
No | QTM Services |
List of PXI services:
- Filesystem services PXI
- Process Services PXI
- Application Manager Services PXI
- Process Manager Services PXI
- Development Services PXI
- Gamecard Services PXI
- Legacy FIRM PXI (TWL_FIRM/AGB_FIRM)
List of ports:
See Error codes.