/dev/usb/msc
Jump to navigation
Jump to search
This article is a stub. You can help WiiBrew by expanding it. |
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 |