Changes

261 bytes added ,  23:34, 29 November 2016
Line 229: Line 229:  
|-
 
|-
 
| 2
 
| 2
| 0x00000004 <nowiki>|</nowiki> (size<<8) <nowiki>|</nowiki> (id<<4)
+
| 0x00000004 <nowiki>|</nowiki> (size<<14) <nowiki>|</nowiki> (id<<4)
 
<ptr>
 
<ptr>
| This is used for RW buffers over PXI. The address written to the destination cmd-buf is a phys-addr for a table located in the BASE memregion. This table contains the phys-addrs for the actual data, the array entries have the following format: {u32 *datachunk_physaddr, u32 datachunk_bytesize}.
+
| This is typically used for RW buffers over PXI, but any process can use this. The address written to the destination cmd-buf is a phys-addr for a table located in the corresponding static buffer of the receiving process (which must be provided by the latter, otherwise the kernel dereferences NULL). Each static buffer needs to be page-aligned and musn't exceed a page's length (kernelpanic otherwise). This table contains the phys-addrs for the actual data, the array entries have the following format: {u32 *datachunk_physaddr, u32 datachunk_bytesize}.
 
|-
 
|-
 
| 3
 
| 3
516

edits