Difference between revisions of "Socket Services"
Jump to navigation
Jump to search
(added static buffers usage and getaddrinfo/getnameinfo command headers) |
|||
Line 49: | Line 49: | ||
|- | |- | ||
| 0x000F0106 | | 0x000F0106 | ||
− | | This resolves the IP address(es) for the specified host-name. | + | | [[SOCU:getaddrinfo|getaddrinfo]] ? This resolves the IP address(es) for the specified host-name. |
+ | |- | ||
+ | | 0x00120104 | ||
+ | | [[SOCU:getnameinfo|getnameinfo]] ? The arguments match but couldn't get it to work yet. | ||
|- | |- | ||
| 0x00110102 | | 0x00110102 | ||
Line 182: | Line 185: | ||
| 0xD860700A | | 0xD860700A | ||
| [[SOCU:InitializeSockets]] returns this when the PID table is already full(32 processes max). | | [[SOCU:InitializeSockets]] returns this when the PID table is already full(32 processes max). | ||
+ | |} | ||
+ | |||
+ | =Socket module static buffers= | ||
+ | |||
+ | This is the list of the known thread static buffers in use for SOC:u and the commands using those. | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! buffer ID | ||
+ | ! commands | ||
+ | |- | ||
+ | | 0 | ||
+ | | bind,connect | ||
+ | |- | ||
+ | | 1 | ||
+ | | sendto_other,sendto | ||
+ | |- | ||
+ | | 2 | ||
+ | | sendto | ||
+ | |- | ||
+ | | 8 | ||
+ | | getnameinfo | ||
+ | |- | ||
+ | | 9 | ||
+ | | setsockopt | ||
+ | |- | ||
+ | | 10 | ||
+ | | poll | ||
|} | |} |
Revision as of 18:35, 12 January 2016
Socket user service "soc:U"
Command Header | Description |
---|---|
0x00010044 | InitializeSockets |
0x000200C2 | socket |
0x00030082 | listen |
0x00040082 | accept |
0x00050084 | bind |
0x00060084 | connect |
0x00070104 | recvfrom_other |
0x00080102 | recvfrom |
0x00090106 | sendto_other |
0x000A0106 | sendto |
0x000B0042 | close |
0x000C0082 | shutdown |
0x000D0082 | gethostbyname |
0x000E00C2 | gethostbyaddr |
0x000F0106 | getaddrinfo ? This resolves the IP address(es) for the specified host-name. |
0x00120104 | getnameinfo ? The arguments match but couldn't get it to work yet. |
0x00110102 | getsockopt |
0x00120104 | setsockopt |
0x001300C2 | fcntl |
0x00140084 | poll |
0x00150042 | sockatmark |
0x00160000 | gethostid |
0x00170082 | getsockname |
0x00180082 | getpeername |
0x00190000 | ShutdownSockets |
0x001A00C0 | GetNetworkOpt |
0x001B0040 | ICMPSocket |
0x001C0104 | ICMPPing |
0x001D0040 | ICMPCancel |
0x001E0040 | ICMPClose |
0x001F0040 | GetResolverInfo |
0x00210002 | CloseSockets |
0x100100C0 | ? |
0x10030142 | ? |
0x10050084 | ? |
0x10070102 | ? |
Socket privileged service "soc:P"
Command Header | Description |
---|---|
0x00010084 | InitializeSockets |
0x00020000 | FinalizeSockets |
0x000300C2 | SetNetworkOpt |
0x00040040 | CloseSocketsForProcess |
0x000500C0 | |
0x00060000 | gethostid |
0x00070000 | |
0x00080000 | |
0x00090000 | StopInitializeSockets |
struct sockaddr
Offset | Size | Description |
---|---|---|
0x0 | 0x1 | Total size of the entire sockaddr buffer. |
0x1 | 0x1 | u8 sa_family |
0x2 | sockaddr_totalsize-0x2 | sa_data[] |
The total buffer size is 0x8, for family AF_INET value 2. AF_INET6 seems to be value 23, the total sockaddr size for this is 0x1C. The max sockaddr buffer size which the socket module can handle is size 0x1C.
These socket services(and defines/structures) seem to be based on the Wii sockets?
Socket module errors
Error | Description |
---|---|
0xC8A0700B | SOCU:InitializeSockets returns this when the specified PID was already used with SOCU:InitializeSockets(since the PID was found in SOC module state table). |
0xD860700A | SOCU:InitializeSockets returns this when the PID table is already full(32 processes max). |
Socket module static buffers
This is the list of the known thread static buffers in use for SOC:u and the commands using those.
buffer ID | commands |
---|---|
0 | bind,connect |
1 | sendto_other,sendto |
2 | sendto |
8 | getnameinfo |
9 | setsockopt |
10 | poll |