Services API: Difference between revisions
mNo edit summary |
m Replace service links with new Template:Service |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
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 | 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 [[Services|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]]. | ||
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 | | USER: normal applications and system modules, LDR: loader, REG: register | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Process Services]] | | [[Process Services]] | ||
| ps:ps | | {{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]]) | | 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 | | 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 | | 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]] | ||
| cfg:u, cfg:s, cfg:i, cfg:nor | | {{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 | | 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 | | 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]] | ||
| ndm:u | | {{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: ? | | 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 | | 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 | | Lcd: LCD control, Gpu: GPU control | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[BOSS Services]] | | [[BOSS Services]] | ||
| boss:U, boss:P, boss:M | | {{Service|boss:U}}, {{Service|boss:P}}, {{Service|boss:M}} | ||
| U: user, P: privileged, M: for [[NDM Services|ndm]] | | U: user, P: privileged, M: for [[NDM Services|ndm]] | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[CECD Services]] | | [[CECD Services]] | ||
| cecd:u, cecd:s, cecd:ndm | | {{Service|cecd:u}}, {{Service|cecd:s}}, {{Service|cecd:ndm}} | ||
| u: user, s: system, ndm: for [[NDM Services|ndm]] | | u: user, s: system, ndm: for [[NDM Services|ndm]] | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[IR Services]] | | [[IR Services]] | ||
| ir:u, ir:USER, ir:rst | | {{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, i2c::NFC, i2c::QTM | | {{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, gpio:NFC, gpio:QTM | | {{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? | | 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 | | 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::CEC, nwm::EXT, nwm::INF, nwm::SAP, nwm::SOC, nwm::TST, 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: ? | | 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 | | C: connection | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[SSL Services]] | | [[SSL Services]] | ||
| ssl:C | | {{Service|ssl:C}} | ||
| C: connection | | 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 | | 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 | | i: internal, u: user | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[Friend Services]] | | [[Friend Services]] | ||
| frd:a, frd:n, frd:u | | {{Service|frd:a}}, {{Service|frd:n}}, {{Service|frd:u}} | ||
| a: admin, n: for [[NDM Services|ndm]], u: user | | 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 | | s: system, u:user | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[PDN Services]] | | [[PDN Services]] | ||
| pdn:s, pdn:d, pdn:i, pdn:g, pdn:c | | {{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]] | ||
| SPI::NOR, SPI::CD2, SPI::CS2, SPI::CS3, SPI::DEF | | {{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]] | ||
| Loader | | {{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 | | a: admin, u: user | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[MP Services]] | | [[MP Services]] | ||
| mp:u | | {{Service|mp:u}} | ||
| | | | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| [[NFC Services]] | | [[NFC Services]] | ||
| nfc:dev, nfc:m, nfc:p, nfc:r, nfc:s, nfc:u | | {{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 | | dev: developer, m: ? p: passthrough?, r: raw?, s: system, u: user | ||
|- | |- |