On Tue, 20 Dec 2016 14:17:14 +0100 Jan Blunck <jblu...@infradead.org> wrote:
> On Fri, Dec 16, 2016 at 2:10 PM, Shreyansh Jain <shreyansh.j...@nxp.com> > wrote: > > This patch introduces the rte_bus abstraction for devices and drivers in > > EAL framework. The model is: > > - One or more buses are connected to a CPU (or core) > > - One or more devices are conneted to a Bus > > - Drivers are running instances which manage one or more devices > > - Bus is responsible for identifying devices (and interrupt propogation) > > - Driver is responsible for initializing the device > > > > This patch adds a 'rte_bus' class which rte_driver and rte_device refer. > > This way, each device (rte_xxx_device) would have reference to the bus > > it is based on. As well as, each driver (rte_xxx_driver) would have link > > to the bus and devices on it for servicing. > > > > __ rte_bus_list > > / > > +----------'---+ > > |rte_bus | > > | driver_list------> List of rte_bus specific > > | device_list---- devices > > | | `-> List of rte_bus associated > > | | drivers > > +--|------|----+ > > _________/ \_________ > > +--------/----+ +-\---------------+ > > |rte_device | |rte_driver | > > | rte_bus | | rte_bus | > > | rte_driver | | ... | > > | ... | +---------...-----+ > > | | ||| > > +---||--------+ ||| > > || ||| > > | \ \\\ > > | \_____________ \\\ > > | \ ||| > > +------|---------+ +----|----------+ ||| > > |rte_pci_device | |rte_xxx_device | ||| > > | .... | | .... | ||| > > +----------------+ +---------------+ / | \ > > / | \ > > _____________________/ / \ > > / ___/ \ > > +-------------'--+ +------------'---+ +--'------------+ > > |rte_pci_driver | |rte_vdev_driver | |rte_xxx_driver | > > | .... | | .... | | .... | > > +----------------+ +----------------+ +---------------+ > > > > This patch only enables the bus references on rte_driver and rte_driver. > > EAL wide global device and driver list continue to exist until an instance > > of bus is added in subsequent patches. > > > > This patch also introduces RTE_REGISTER_BUS macro on the lines of > > RTE_PMD_REGISTER_XXX. Key difference is that the constructor priority has > > been explicitly set to 101 so as to execute bus registration before PMD. > > > > Signed-off-by: Shreyansh Jain <shreyansh.j...@nxp.com> > > Ok, but let's keep this as bus type not bus. It gets really hard and complex to enumerate all layers of PCI bus and bridges.