HIPC: Difference between revisions

No edit summary
Line 56: Line 56:


Sysmodules load the last u64 of rawdata when handling the PID. This is not written by kernel. For sysmodule handling:
Sysmodules load the last u64 of rawdata when handling the PID. This is not written by kernel. For sysmodule handling:
* In some cases: The rawdata_u64 is written to stack as the initial PID, but this is never used since the get-pid function always overwrites the output PID when it returns retval 0.
* In some cases: these commands require a placeholder u64 value passed in the input parameters, as mentioned above. In these cases the OverwriteClientProcessId method is called to replace the value before it is used.
* In other cases: The rawdata_u64 is compared with the PID from the descriptor. On mismatch and when rawdata_u64!=0, error 0x60A is returned. The PID value passed to the cmdhandler vtable funcptr is the rawdata_u64.
* In other cases: The rawdata_u64 is compared with the PID from the descriptor. On mismatch and when rawdata_u64!=0, error 0x60A is returned. The PID value passed to the cmdhandler vtable funcptr is the rawdata_u64.


Line 173: Line 173:
| 4... || Input parameters or return values
| 4... || Input parameters or return values
|}
|}
Many messages which require the PID also require a placeholder u64 value passed in the input parameters. In these cases the OverwriteClientProcessId method is called to replace the value before it is used.


== Official marshalling code ==
== Official marshalling code ==