Better device probe values

Divacky Roman xdivac02 at stud.fit.vutbr.cz
Wed Feb 23 06:31:33 PST 2005


On Tue, Feb 22, 2005 at 02:32:30PM -0700, Warner Losh wrote:
> Greetings,
> 
> >From time to time, the concept of a binary driver has been floated.
> The idea would be that a vendor could put out a binary driver disk
> when there were bugs in the drivers for a specific release so that
> users impacted by those bugs could still, for example, install that
> specific release.
> 
> However, most of the drivers in the base system do not allow this to
> happen because they return 0.
> 
> At the same time, we have a number of generic drivers in the tree that
> have been using ad-hoc values to make sure that the right driver gets
> attached (see for example pci and acpi pci, and friends).  We also
> have some drivers that overlap ranges of devices (eg, ncr and sym
> drivers).
> 
> So, I'd like to standardize on some names, and thought I'd post here
> my first cut at the names.  Let's not get too far off in the weeds,
> since names is a prime bike-shed topic[*].  I'll likely ignore most of
> that part of the discussion, and focus on the more technical and/or
> political side of things.  If possible, I'd like to have this wrapped
> up in time for 5.4, but I do understand that time is extremely short
> for that.
> 
> /**
>  * Some convenience defines for probe routines to return.  These are
>  * just suggested values, and there's nothing magical about them.
>  * BUS_PROBE_SPECIFIC is for devices that cannot be reprobed, and that
>  * no possible other driver may exist (typically legacy drivers who
>  * don't fallow all the rules, or special needs drivers).  BUS_PROBE_VENDOR
>  * is the suggested value that vendor supplied drivers use.  This is
>  * for source or binary drivers that are not yet integrated into the FreeBSD
>  * tree.  Its use in the base OS is prohibited.  BUS_PROBE_DEFAULT is
>  * the normal return value for drivers to use.  It is intended that nearly
>  * all of the drivers in the tree should return this value.
>  * BUS_PROBE_LOW_PRIORITY are for drivers that have special requirements
>  * like when there are two drivers that support overlapping series of
>  * hardware devices.  In this case the one that supports the older part
>  * of the line would return this value, while the one that supports the newer
>  * ones would return BUS_PROBE_DEFAULT.  BUS_PROBE_GENERIC is for drivers
>  * that wish to have a generic form and a specialized form, like is done
>  * with the pci bus and that acpi pci bus.  BUS_PROBE_HOOVER is for those
>  * busses that implement a generic device placeholder for devices on the
>  * bus that have no more specific driver for them (aka ugen).
>  */
> #define BUS_PROBE_SPECIFIC	0	/* Only I can use this device */
> #define BUS_PROBE_VEDNOR	(-10)	/* Vendor supplied driver */
                      ^^

typo...		      


More information about the freebsd-arch mailing list