On 21-Jan-01 Donald J . Maddox wrote:
> Heh, this is pretty wierd :)
>
> I was intrigued by your little problem, so I started looking around.
> In sys/dev/pci/pciar.h is:
>
> static __inline u_int32_t
> pci_read_config(device_t dev, int reg, int width)
> {
> return PCI_READ_CONFIG(device_get_parent(dev), dev, reg, width);
> }
>
> However, this is the only occurence of the string "PCI_READ_CONFIG"
> that I can find in the whole damn source tree! Where is this defined?
Look in /sys/compile/<foo> after compiling a kernel, it should be in pci_if.*
It's a function that ues kobj to lookup the pci_read_config method in the
parent bus. Look in the PCI code to find the real pci_read_config...
>From sys/dev/pci/pci.c:
DEVMETHOD(pci_read_config, pci_read_config_method),
static u_int32_t
pci_read_config_method(device_t dev, device_t child, int reg, int width)
{
struct pci_devinfo *dinfo = device_get_ivars(child);
pcicfgregs *cfg = &dinfo->cfg;
return PCIB_READ_CONFIG(device_get_parent(dev),
cfg->bus, cfg->slot, cfg->func,
reg, width);
}
This calls pcib_read_config in the PCI bus driver:
DEVMETHOD(pcib_read_config, nexus_pcib_read_config),
nexus_pcib_read_config(device_t dev, int bus, int slot, int func,
int reg, int bytes)
{
return(pci_cfgregread(bus, slot, func, reg, bytes));
}
--
John Baldwin <[EMAIL PROTECTED]> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message