.\" This manpage has been automatically generated by docbook2man
.\" from a DocBook document. This tool can be found at:
.\"
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng .
.TH "USB_MAKE_PATH" "9" "07 August 2003" "" ""
.SH NAME
usb_make_path \- returns stable device path in the usb tree
.SH SYNOPSIS
.sp
\fB
.sp
int usb_make_path (struct usb_device * \fIdev\fB, char * \fIbuf\fB, size_t \fIsize\fB);
\fR
.SH "ARGUMENTS"
.TP
\fB\fIdev\fB\fR
the device whose path is being constructed
.TP
\fB\fIbuf\fB\fR
where to put the string
.TP
\fB\fIsize\fB\fR
how big is ``buf''?
.SH "DESCRIPTION"
.PP
Returns length of the string (> 0) or negative if size was too small.
.PP
This identifier is intended to be ``stable'', reflecting physical paths in
hardware such as physical bus addresses for host controllers or ports on
USB hubs. That makes it stay the same until systems are physically
reconfigured, by re-cabling a tree of USB devices or by moving USB host
controllers. Adding and removing devices, including virtual root hubs
in host controller driver modules, does not change these path identifers;
neither does rebooting or re-enumerating. These are more useful identifiers
than changeable (``unstable'') ones like bus numbers or device addresses.
.PP
With a partial exception for devices connected to USB 2.0 root hubs, these
identifiers are also predictable. So long as the device tree isn't changed,
plugging any USB device into a given hub port always gives it the same path.
Because of the use of ``companion'' controllers, devices connected to ports on
USB 2.0 root hubs (EHCI host controllers) will get one path ID if they are
high speed, and a different one if they are full or low speed.
.SH "ABOUT THIS DOCUMENT"
.PP
This documentation is free software; you can redistribute
it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later
version.
.PP
This program is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
.PP
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
.PP
For more details see the file COPYING in the source
distribution of Linux.
.PP
If you have comments on the formatting of this manpage, then please contact
Michael Still (mikal@stillhq.com).
.PP
This documentation was generated with kernel version 2.6.0.