Difference between revisions of "/dev/usb/usb"

< /dev‎ | usb
(page creation)
 
m
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Description==
+
{{stub}}
This device is used to communicate with the USB camera provided with the game "Your Shape".
+
 
Not much information is known at this time.
+
This device is internally used by several USB resource managers. Not much information is known at this time.
 +
 
 +
It is implemented by a module (USB) in IOS58 that runs under UID 17 (PID_USB). This resource manager can only be opened from that UID.  It appears to be able to generically address devices via /dev/usb/oh0 and /dev/usb/ehc.  It is accessed via several ioctls.
  
It is implemented by a module (USB) in IOS58.  It appears to be able to generically address devices via /dev/usb/oh0 and /dev/usb/ehc. It is accessed via several ioctls. Yes, I know this doesn't match up with the ioctls called by /dev/usb/ven; sorry!
+
Because all of the USB related modules run under the same UID, they all share the same file descriptor table. This allows ioctl 1 (GetDeviceList) to return FDs to /dev/usb/ehc and /dev/usb/oh0. These are directly used by VEN, HID, etc. when submitting transfers, without going through /dev/usb/usb.
  
=== Ioctls ===
+
[[File:New_IOS_USB_modules.svg|center|600px]]
 +
 
 +
== Ioctls ==
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 15: Line 19:
 
| 0
 
| 0
 
| 0 / 4
 
| 0 / 4
| open?
+
| GetVersion
 
| puts "0x10001" into the io_buf
 
| puts "0x10001" into the io_buf
 
|-
 
|-
 
| 1
 
| 1
 
| 0 / > =0x300
 
| 0 / > =0x300
| ?
+
| GetDeviceChange
|  
+
|
 
|-
 
|-
 
| 2
 
| 2
 
| 8 / >= 8
 
| 8 / >= 8
| ?
+
| GetDeviceInfo
|  
+
|
 
|-
 
|-
| 3
+
| 4
 
| 8 / 0
 
| 8 / 0
 
| ?
 
| ?
 
| calls ? ioctl 4 and/or 6
 
| calls ? ioctl 4 and/or 6
 
|}
 
|}
{{stub}}
 

Latest revision as of 21:28, 1 November 2017

This device is internally used by several USB resource managers. Not much information is known at this time.

It is implemented by a module (USB) in IOS58 that runs under UID 17 (PID_USB). This resource manager can only be opened from that UID. It appears to be able to generically address devices via /dev/usb/oh0 and /dev/usb/ehc. It is accessed via several ioctls.

Because all of the USB related modules run under the same UID, they all share the same file descriptor table. This allows ioctl 1 (GetDeviceList) to return FDs to /dev/usb/ehc and /dev/usb/oh0. These are directly used by VEN, HID, etc. when submitting transfers, without going through /dev/usb/usb.

New IOS USB modules.svg

Ioctls

Ioctl Parameters (inbuf_len / iobuf_len) Function Notes
0 0 / 4 GetVersion puts "0x10001" into the io_buf
1 0 / > =0x300 GetDeviceChange
2 8 / >= 8 GetDeviceInfo
4 8 / 0 ? calls ? ioctl 4 and/or 6