Line 15: |
Line 15: |
| | 0 || 31-28 || Number of buf W desciptors (each: 3 words), never observed. | | | 0 || 31-28 || Number of buf W desciptors (each: 3 words), never observed. |
| |- | | |- |
− | | 1 || 9-0 || Total word count (in u32's). | + | | 1 || 9-0 || Raw data size (in u32's). |
| |- | | |- |
| | 1 || 13-10 || Flags for buf C descriptor. | | | 1 || 13-10 || Flags for buf C descriptor. |
Line 31: |
Line 31: |
| | ... || || Type W descriptors, each one 3 words. | | | ... || || Type W descriptors, each one 3 words. |
| |- | | |- |
− | | ... || || Padding
| + | | ... || || Raw data (including any padding). |
− | |-
| |
− | | ... || || Raw data | |
| |- | | |- |
| | ... || || Buf C descriptors, each one 2 words. | | | ... || || Buf C descriptors, each one 2 words. |
Line 49: |
Line 47: |
| |- | | |- |
| | 0 || 8-5 || Number of handles to move | | | 0 || 8-5 || Number of handles to move |
| + | |- |
| + | | ... || || 8-byte PID if enabled |
| |- | | |- |
| | ... || || Handles to copy | | | ... || || Handles to copy |
Line 113: |
Line 113: |
| | | |
| == Raw data portion == | | == Raw data portion == |
− | This is an array of u64's. It's always aligned to 16 so sometimes there is padding words before it. | + | This is an array of u32's, but individual parameters are generally stored as u64's. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Word || Description | | ! Word || Description |
| |- | | |- |
− | | ... || Pid is written here if enabled. | + | | ... || Padding to align to 16 |
| + | |- |
| + | | ... || Domain header padded to 16 if required |
| + | |- |
| + | | +0 || Magic ("SFCI" for requests, "SFCO" for responses) as u64 |
| |- | | |- |
− | | +0 || Magic ("SFCI" for requests, "SFCO" for responses) | + | | +2 || Cmd id as u64 |
| |- | | |- |
− | | +1 || Cmd id | + | | ... || Input parameters |
| |- | | |- |
− | | ... || Rest of raw data. | + | | ... || Any u16 buffer sizes packed and aligned to 2 bytes |
| |} | | |} |
| | | |
Line 186: |
Line 190: |
| | | |
| == Control == | | == Control == |
− | When type == 5 you are talking to kernel. | + | When type == 5 you are talking to the IPC manager. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |