misc questions about the device&driver arch
John-Mark Gurney
gurney_j at resnet.uoregon.edu
Wed May 24 00:59:54 PDT 2006
william wallace wrote this message on Wed, May 24, 2006 at 15:48 +0800:
> IN static device_method_t pci_methods[] = {
> what is the freeBSD's magic to connect pci_read_config_method wtih
> PCI_READ_CONFIG? awk script?and so on?
> which
> DEVMETHOD(pci_read_config, pci_read_config_method), in pci.c
> command = PCI_READ_CONFIG(dev, child, PCIR_COMMAND, 2); in
> pci_enable_io_method in pci.c
>
> and what if i create a new method in pci method interface ?
> such as DEVMETHOD(pci_have_rest , pci_have_rest_method)
> what else should i do when i want to use PCI_HAVE_REST(dev ) point to
> pci_have_rest_method
These are handled by the _if.m files... look at sys/dev/pci/pci_if.m...
There is an awk script in sys/tools/makeobjops.awk that converts the
_if.m to the appropriate .h and .c files...
Please read:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/arch-handbook/kernel-objects-using.html
http://www.freebsd.org/doc/en_US.ISO8859-1/books/arch-handbook/newbus-overview.html
The device methods are implemented using kobj...
> On 5/23/06, Scott Long <scottl at samsco.org> wrote:
> >william wallace wrote:
> >
> >[...]
> >
> >> MSI:
> >> I've bantered around different suggestions for an API that will support
> >> this. The basic thing that a driver needs from this is to know
> >> exactly how many message interrupt vectors are available to it. It
> >> can't just register vectors and handlers blindly since the purpose of
> >> MSI is to assign special meanings to each vector and allow the driver to
> >> handle each one in specifically.
> >
> >[...]
> >
> >I just wanted to briefly say that an MSI implementation has been done
> >recently, and that it should start getting wider circulation and review
> >soon. That's not to say that more work and design can't be done in this
> >area, but we should probably wait a bit and see what has been done
> >already.
--
John-Mark Gurney Voice: +1 415 225 5579
"All that I will do, has been done, All that I have, has not."
More information about the freebsd-hackers
mailing list