Changes

2,313 bytes added ,  22:05, 17 February 2008
no edit summary
Line 64: Line 64:  
|}
 
|}
   −
For example, to reset the Bluetooth HCI (and therefore break the connection with the [[Wiimote]]), send a message with the parameters (0x20,0,0,0,0x0300,0) and data 03 0C 00. (0x0300 is the length, 3, in little-endian format).
+
For example, to reset the Bluetooth HCI (and therefore break the connection with the [[Wiimote]]), send a message with the parameters (0x20,0,0,0,0x0300,0) and data 03 0C 00. (0x0300 is the length, 3, in little-endian format). The operation returns the number of bytes read or written.
 +
 
 +
=== Send Or Receive Bulk/Interrupt Message ===
 +
ioctlv(fd, '''1''', 2, 1, vectors); //Bulk
 +
ioctlv(fd, '''2''', 2, 1, vectors); //Interrupt
 +
 
 +
Vectors:
 +
{| style="border-collapse: collapse; padding: 0.2em 0.2em 0.2em 0.2em;"
 +
|- style="background-color: #ddd;"
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | '''I/IO'''
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | '''Number'''
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | '''Type'''
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | '''Length'''
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | '''Description'''
 +
|- style="background-color: #ddd;"
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | I
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 0
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | u8
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | 1
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | bEndpoint
 +
|- style="background-color: #ddd;"
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | I
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 1
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | u16
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | w
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | wLength
 +
|- style="background-color: #ddd;"
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #eee;" | IO
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ded;" | 2
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #dde;" | array
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #ddd;" | wLength
 +
| style="border: 1px solid #ccc; padding: 0.2em; background-color: #edd;" | request data payload
 +
|}
 +
 
 +
The same request is used for both sending and receiving data. Which operation is used depends on the endpoint number (>=0x80 are input endpoints, <0x80 are output). The operation returns the number of bytes read or written.