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>