/dev/usb/msc

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

This device is used for Mass Storage devices. Not much information is known at this time. It is only present in IOS57, 58 and 59 as an internal IOS device which cannot be opened from the PPC; only the wfskrn module is known to use it in IOS59.

Just like /dev/usb/ven, 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, some of which are identical to /dev/usb/ven.

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

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