|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V6 3/7] libxl: add pvusb API
On 09/14/2015 12:36 PM, George Dunlap wrote: On Mon, Sep 14, 2015 at 4:48 AM, Juergen Gross <jgross@xxxxxxxx> wrote:On 09/11/2015 04:41 PM, Ian Campbell wrote:On Fri, 2015-09-11 at 16:18 +0200, Juergen Gross wrote:On 09/11/2015 04:09 PM, Ian Campbell wrote:On Fri, 2015-09-11 at 15:55 +0200, Juergen Gross wrote:On 09/11/2015 03:26 PM, Ian Campbell wrote:On Thu, 2015-09-10 at 23:42 -0600, Chun Yan Liu wrote:Do these fields have any particular size requirements arising from e.g. the USB spec or from possible dom0 implementations? If they have a well defined fixed size from a USB spec then maybe we could use the appropriate fixed size types?Di> dn't see the size limitation. In Linux kernel code, busnum and devnum (here 'hostbus, hostaddr') are both 'int' type.Is that a Linux-specific implementation detail or a fundamental property of USB? We should be designing the interface around Linux implementation details. It seems like something in the USB spec ought to define precisely the number of bits in both a bus number and a device address within that bus.The USB spec is only about _the_ bus. How many buses a host can operate and how they are numbered is outside the USB spec. Devices are addressed via their ports in the USB protocol. devnum is a unique index for a device on the bus, the USB protocol equivalent is a list of ports of: - 1 member in case of direct attached devices - multiple members in case of hubs between bus and deviceThanks for the info. So an "address" in the USB protocol is actually a "path" and "hostbus" is an implementation dependent shorthand for all but the last link in that path.I'm not sure in which direction you are looking. "address" is a path. A path is normally a list of ports starting at the host and walking through all hubs until you reach the device. The "bus" is the root of that path. So the number of buses the host knows of is the number of USB host adapters without any hub.OK, I thought I understood but the above suggests not. In USB speak, the address is a list of port numbers, which you follow from the host bus which is the root. In Linux speak a "bus" is actually each hub along that path.No. Each hub is just a port which happens to have more ports behind it. drivers/usb/core/hcd.c is using a bitmap to find the next bus number currently not in use. It's size is USB_MAXBUS which in turn has the value 64. choose_devnum() in drivers/usb/core/hub.c is doing a similar job for device numbers. Here the highest number supported is 127. Juergen _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |