/dev/usb/ven

From WiiBrew
< /dev‎ | usb
Jump to: navigation, search

Description

This device is used to communicate with the USB camera provided with the game "Your Shape". Not much information is known at this time.

It is implemented by a module (USB_VEN) in IOS58. It appears to be able to generically address devices via OHCI0 or EHCI, by way of ioctl calls to /dev/usb/usb. It is accessed via several ioctl/ioctlvs. This information is incomplete, please fill it in when possible.

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.

Ioctls

Ioctlv Parameters Function Notes
0 0 / 0x20 (ioctl) ven_open
1 0 / 0x180 (ioctl) ven_attach_complete_callback
2 0 / 0 (ioctl) ven_close
3 0x20 / 0xC0 (ioctl) ? calls /dev/usb/usb ioctl 2
4 0x20 / 0 (ioctl) ?
5 0x20 / 0 (ioctl) ? indirectly calls /dev/usb/usb ioctl 1
6 0 / 0 (ioctl) ? calls /dev/usb/usb ioctl 1
7 0x20 / 0 (ioctl) ven_set_alt_setting calls /dev/usb/usb ioctl 5 and/or 0x11
8 0x20 / ? (ioctl) ? calls /dev/usb/usb ioctl 3
0x10 0x20 / 0 (ioctl) ven_suspend_resume, ven_attach_suspend_callback, ven_attach_get_device_params_callback calls /dev/usb/usb ioctl 4
0x11 0x20 / 0 (ioctl) ven_cancel_endpoint calls /dev/usb/usb ioctl 0x10
0x12 1 in / 1 io, or 2 in / 0 io? (ioctlv) ven_ctrl calls /dev/usb/usb ioctl 0x11
0x13 1/1 or 2/0? (ioctlv) ven_intr calls /dev/usb/usb ioctl 0x12
0x14 2/2 or 3/1 (ioctlv) ven_isoc calls /dev/usb/usb ioctl 0x13
0x15 ? (ioctlv) ven_? calls /dev/usb/usb ioctl 0x14