Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Jul 2011 12:56:10 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Konstantin Belousov <kib@FreeBSD.org>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: svn commit: r223885 - head/sys/dev/pci
Message-ID:  <307FA901-53F0-4622-98AE-329FAE9762A1@bsdimp.com>
In-Reply-To: <201107091430.p69EUDf8003975@svn.freebsd.org>
References:  <201107091430.p69EUDf8003975@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Should't this be called 'pci_find_first_class()"?  Also, can you add a =
man page for it, or at least document what it is supposed to be used for =
in the code?

Warenr

On Jul 9, 2011, at 8:30 AM, Konstantin Belousov wrote:

> Author: kib
> Date: Sat Jul  9 14:30:13 2011
> New Revision: 223885
> URL: http://svn.freebsd.org/changeset/base/223885
>=20
> Log:
>  Implement pci_find_class(9), the function to find a pci device by its =
class.
>=20
>  Sponsored by:	The FreeBSD Foundation
>  Reviewed by:	jhb
>  MFC after:	1 week
>=20
> Modified:
>  head/sys/dev/pci/pci.c
>  head/sys/dev/pci/pcivar.h
>=20
> Modified: head/sys/dev/pci/pci.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/dev/pci/pci.c	Sat Jul  9 14:29:23 2011	=
(r223884)
> +++ head/sys/dev/pci/pci.c	Sat Jul  9 14:30:13 2011	=
(r223885)
> @@ -347,6 +347,21 @@ pci_find_device(uint16_t vendor, uint16_
> 	return (NULL);
> }
>=20
> +device_t
> +pci_find_class(uint8_t class, uint8_t subclass)
> +{
> +	struct pci_devinfo *dinfo;
> +
> +	STAILQ_FOREACH(dinfo, &pci_devq, pci_links) {
> +		if (dinfo->cfg.baseclass =3D=3D class &&
> +		    dinfo->cfg.subclass =3D=3D subclass) {
> +			return (dinfo->cfg.dev);
> +		}
> +	}
> +
> +	return (NULL);
> +}
> +
> static int
> pci_printf(pcicfgregs *cfg, const char *fmt, ...)
> {
>=20
> Modified: head/sys/dev/pci/pcivar.h
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/dev/pci/pcivar.h	Sat Jul  9 14:29:23 2011	=
(r223884)
> +++ head/sys/dev/pci/pcivar.h	Sat Jul  9 14:30:13 2011	=
(r223885)
> @@ -457,6 +457,7 @@ pci_msix_count(device_t dev)
> device_t pci_find_bsf(uint8_t, uint8_t, uint8_t);
> device_t pci_find_dbsf(uint32_t, uint8_t, uint8_t, uint8_t);
> device_t pci_find_device(uint16_t, uint16_t);
> +device_t pci_find_class(uint8_t class, uint8_t subclass);
>=20
> /* Can be used by drivers to manage the MSI-X table. */
> int	pci_pending_msix(device_t dev, u_int index);
>=20
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?307FA901-53F0-4622-98AE-329FAE9762A1>