Subject: Re: CVS commit: [itohy-usb1] src/sys/dev/usb
To: None <david.sainty@dtsp.co.nz>
From: M. Warner Losh <imp@bsdimp.com>
List: source-changes
Date: 06/26/2007 08:30:37
In message: <19578.1182847028@dtsp.co.nz>
            david.sainty@dtsp.co.nz writes:
: "M. Warner Losh" writes:
: 
: > In message: <10105.1182771473@dtsp.co.nz>
: >             david.sainty@dtsp.co.nz writes:
: > : Brilliant!  I have been working on this, and throwing up my hands in
: > : horror over the slapstick OpenBSD changes!  Not to mention the nasty
: > : state of the device definitions added for this driver in the OpenBSD
: > : usbdevs (dups, definitions all over the place).
: > 
: > The BSDs should just share one usbdevs.  Having multiple ones is just
: > silly.
: 
: But it should be the NetBSD one, I'm pretty sure the FreeBSD one had
: copies of the same mistakes when I looked :)

It shouldn't be the NetBSD because it is missing a number of entries
that are in the FreeBSD one.  Also, its entries are purposely
truncated: bug or feature is debatable.

It shouldn't be the FreeBSD one because it is missing a number of
entries in the OpenBSD one.

It shouldn't be the OpenBSD one because it is missing a number of
entries in the NetBSD one.

Etc.

I've also fixed the FreeBSD one to fix the mistakes (like the NetBSD
one gets fixed from time to time).  I've fixed this mistakes in the
NetBSD one as well.  Ditto to the OpenBSD one.  I've been doing this
for years.

At this point, the one I have in FreeBSD is close to being the best
superset to them all.  The biggest difference is that NetBSD's uses
shorter names, sometimes arbitrarily so, for many of the company and
device names.  To effectively share, we need to figure out how to
generate the shorter names from the longer names.  NetBSD did this for
kernel space reasons since it compiles this file into the kernel.
FreeBSD doesn't, by default.  Ideally, if one group wants to subset
the file for inclusion into the tree, then that subsetting should be
done mechanically from the common file.

I have uncommitted patches in my tree that parse this file and report
via usbdevs any matches that are found in this file in a verbose and
useful way.

The bottom line is that there needs to be a *MERGED* version, and that
*MERGED* version will likely have code impacts in *ALL* the BSDs.
I'll do the leg-work in FreeBSD and NetBSD, but someone needs to
integrate into OpenBSD.  I'll also let others do the NetBSD work too,
I'm not proud.

Warner