Line 6:
Line 6:
All buffers must be in MEM2 (addr > 0x10000000) and aligned to a 32-byte boundary. For all of the ioctlvs, the first buffer must be 64 bytes long.
All buffers must be in MEM2 (addr > 0x10000000) and aligned to a 32-byte boundary. For all of the ioctlvs, the first buffer must be 64 bytes long.
+
+
== Requests ==
+
{| class="wikitable"
+
|-
+
! Request !! Name !! Input !! Output
+
! Notes
+
|-
+
| 0 || USBV5_IOCTL_GETVERSION || None || 32 bytes
+
| Writes 0x50001 to the output buffer. This is entirely identical to /dev/usb/ven.
+
|-
+
| 1 || USBV5_IOCTL_GETDEVICECHANGE (?) || None || 0xC0 bytes
+
| Likely the same as the /dev/usb/ven version of this ioctl, but with a different output buffer size.
+
|-
+
| 2 || USBV5_IOCTL_SHUTDOWN (?) || None || None
+
| Likely the same as the /dev/usb/ven version of this ioctl.
+
|-
+
| 3 || USBV5_IOCTL_GETDEVPARAMS (?) || 0x20 bytes || 0x60 bytes
+
| Likely the same as the /dev/usb/ven version of this ioctl, but with a different output buffer size.
+
|-
+
| 4 || ? || 0x20 bytes || None
+
| Likely the same as the /dev/usb/ven version of this ioctl.
+
|-
+
| 5 || ? || 0x20 bytes || None
+
| Likely the same as the /dev/usb/ven version of this ioctl.
+
|-
+
| 6 || USBV5_IOCTL_ATTACHFINISH || None || None
+
| Officially known as MSC_IOCTL_ATTACH_COMPLETE, and likely the same as the /dev/usb/ven version of this ioctl.
+
|-
+
| 16 || USBV5_IOCTL_SUSPEND_RESUME (?) || - || -
+
| Unlike in /dev/usb/ven, this ioctl is unimplemented and returns IPC_SUCCESS immediately regardless of the arguments.
+
|-
+
| 17 || USBV5_IOCTL_CANCELENDPOINT (?) || 0x20 bytes || None
+
| Likely the same as the /dev/usb/ven version of this ioctl.
+
|-
+
| 18 (ioctlv) || USBV5_IOCTLV_CTRLMSG (?) || ? || ?
+
| Likely the same as the /dev/usb/ven version of this ioctlv.
+
|-
+
| 32 (ioctlv) || ? || ? || ?
+
|
+
|-
+
| 33 (ioctlv) || ? || ? || ?
+
|
+
|-
+
| 34 (ioctlv) || ? || ? || ?
+
|
+
|-
+
| 35 (ioctlv) || ? || ? || ?
+
|
+
|-
+
| 36 || ? || 0x20 bytes || None
+
|
+
|}