HIPC: Difference between revisions
Misson20000 (talk | contribs) m →IPC buffers: that's not how you bold in wikitext |
→Data payload: details on how data payload is formed |
||
Line 262: | Line 262: | ||
! Word || Description | ! Word || Description | ||
|- | |- | ||
| 0 || Magic ("SFCI" for requests, "SFCO" for responses) as | | 0 || Magic ("SFCI" for requests, "SFCO" for responses) as u32. | ||
|- | |||
| 1 || Version as u32. 1 for NewRequest, 0 for Request. | |||
|- | |- | ||
| 2 || Command id as u64 for requests, [[Error_codes|error code]] as u64 for responses. | | 2 || Command id as u64 for requests, [[Error_codes|error code]] as u64 for responses. | ||
Line 271: | Line 273: | ||
|} | |} | ||
[5.0.0+] | [5.0.0+] Version was incremented from 0 to 1, and a token value was introduced into raw_data+12 (regardless of domain or not, in either case it overlaps with padding). | ||
The input rawdata struct is generated by stable-sorting function parameters by alignment, from low to high. It is likely this is a mistake, as it generates structs with the maximum possible padding -- Nintendo probably meant to sort from high to low, but couldn't/can't change this without breaking backwards compatibility. | |||
== Official marshalling code == | == Official marshalling code == |