Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Jan 2001 16:35:11 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        "Donald J . Maddox" <dmaddox@sc.rr.com>
Cc:        freebsd-hackers@FreeBSD.org, Nicolas Souchu <nsouch@alcove.fr>
Subject:   Re: more info about: odd result of pci_read_config
Message-ID:  <XFMail.010120163511.jhb@FreeBSD.org>
In-Reply-To: <20010120192739.A2127@cae88-102-101.sc.rr.com>

next in thread | previous in thread | raw e-mail | index | archive | help

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 <jhb@FreeBSD.org> -- 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 majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010120163511.jhb>