HIPC: Difference between revisions

No edit summary
Line 127: Line 127:
There's a 4-bit flag in the main header controlling the behavior of C descriptors.
There's a 4-bit flag in the main header controlling the behavior of C descriptors.


If it has value 0, the C descriptor functionality is disabled. If it has value 1, there is no C descriptor. If it has value 2, there is a single C descriptor.
If it has value 0, the C descriptor functionality is disabled.


Otherwise it has (flag-2) C descriptors. Note that flag=2 and flag=3 both encode a single C descriptor.
If it has value 1, there is an "inlined" C buffer after the raw data. Received data is copied to ROUND_UP(cmdbuf+raw_size+index, 16)
 
If it has value 2, there is a single C descriptor.
 
Otherwise it has (flag-2) C descriptors. In this case, index picks which C descriptor to copy received data to [instead of picking the offset into the buffer].
 
Data sent with this method must have MemoryState 0x4000000 mask set.
 
After reply, X descriptors are written to the sender containing the address, size and index that were copied to.


{| class="wikitable" border="1"
{| class="wikitable" border="1"