Line 1: |
Line 1: |
− | = bsd:u, bsd:s = | + | = bsd:u, bsd:s, bsd:a = |
| This is "nn::socket::sf::IClient". | | This is "nn::socket::sf::IClient". |
| | | |
| [15.0.0+] This is "nn::socket::sf::IClient_MC". | | [15.0.0+] This is "nn::socket::sf::IClient_MC". |
| + | |
| + | [18.0.0+] This is "nn::socket::sf::IClient". |
| | | |
| All the services commands but the first two return -1 on failure and set errno when that happens. Although Nintendo has the FreeBSD kernel's to socket stack, '''the errno macro definitions being in use actually come from Linux (and not from FreeBSD as one would expect!)'''. | | All the services commands but the first two return -1 on failure and set errno when that happens. Although Nintendo has the FreeBSD kernel's to socket stack, '''the errno macro definitions being in use actually come from Linux (and not from FreeBSD as one would expect!)'''. |
| + | |
| + | [18.0.0+] bsd:a was added. |
| | | |
| These services have max_sessions 0x40. There's 22 IPC handler threads for bsd:u, and 11 for bsd:s. | | These services have max_sessions 0x40. There's 22 IPC handler threads for bsd:u, and 11 for bsd:s. |
| + | |
| + | [16.0.0+] bsd:u has max_sessions 0x24 and bsd:s has max_sessions 0x7E. |
| + | |
| + | [18.0.0+] bsd:u has max_sessions 0xF, bsd:s has max_sessions 0x7E and bsd:a has max_sessions 0x17. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 161: |
Line 169: |
| sdknso will only use this cmd when two flags in the input config are set: the first one being set indicates that the bsd:s service is used, while the second flag enables using this cmd. An error is thrown if the work-buffer size is <0x1000. Otherwise when these flags aren't set, [[#RegisterClient]] is used as usual. | | sdknso will only use this cmd when two flags in the input config are set: the first one being set indicates that the bsd:s service is used, while the second flag enables using this cmd. An error is thrown if the work-buffer size is <0x1000. Otherwise when these flags aren't set, [[#RegisterClient]] is used as usual. |
| | | |
− | = bsdcfg = | + | = bsdcfg, ifcfg = |
| This is "nn::bsdsocket::cfg::ServerInterface". | | This is "nn::bsdsocket::cfg::ServerInterface". |
| | | |
− | This has IPC max_sessions 4. | + | [18.0.0+] ifcfg was added. |
| + | |
| + | This has max_sessions 4. |
| + | |
| + | [18.0.0+] bsdcfg has max_sessions 1 and ifcfg has max_sessions 4. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 393: |
Line 405: |
| | | |
| The list should be terminated with a sentinel four-byte zero value. | | The list should be terminated with a sentinel four-byte zero value. |
| + | |
| + | = dns:priv = |
| + | This was added with [18.0.0+]. |
| + | |
| + | This has max_sessions 1. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || |
| + | |- |
| + | | 1 || |
| + | |- |
| + | | 2 || |
| + | |} |
| | | |
| = nsd:u, nsd:a = | | = nsd:u, nsd:a = |
| This is "nn::nsd::detail::IManager". | | This is "nn::nsd::detail::IManager". |
| | | |
− | nsd:u has IPC max_sessions 20, nsd:a has IPC max_sessions 5. No retail system titles have access to nsd:a. | + | nsd:u has max_sessions 20, nsd:a has IPC max_sessions 5. No retail system titles have access to nsd:a. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |