Changes

330 bytes added ,  22:08, 19 October 2017
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"