class PciRoot

Defined at line 22 of file ../../src/devices/bus/drivers/pci/root.h

Public Methods

void AddRef ()

Implement refcounting for UpstreamNode

Defined at line 25 of file ../../src/devices/bus/drivers/pci/root.h

void Adopt ()

Implement refcounting for UpstreamNode

Defined at line 25 of file ../../src/devices/bus/drivers/pci/root.h

bool Release ()

Implement refcounting for UpstreamNode

Defined at line 25 of file ../../src/devices/bus/drivers/pci/root.h

void PciRoot (const PciRoot & )

Disallow copying, assigning and moving.

Defined at line 28 of file ../../src/devices/bus/drivers/pci/root.h

void PciRoot (PciRoot && )

Defined at line 29 of file ../../src/devices/bus/drivers/pci/root.h

PciRoot & operator= (const PciRoot & )

Defined at line 30 of file ../../src/devices/bus/drivers/pci/root.h

PciRoot & operator= (PciRoot && )

Defined at line 31 of file ../../src/devices/bus/drivers/pci/root.h

void ~PciRoot ()

Defined at line 32 of file ../../src/devices/bus/drivers/pci/root.h

PciAllocator & mmio_regions ()

Prefetch ranges can be allocated from the general mmio allocator

without any specific restrictions. There's no distinction between

prefetchable and non-prefetchable address space at this point

in the upstream allocation chain. This matters for bridges which

specifically will need their prefetch devices to be within the

prefetch window of upstream bridges.

Defined at line 40 of file ../../src/devices/bus/drivers/pci/root.h

PciAllocator & pf_mmio_regions ()

Defined at line 41 of file ../../src/devices/bus/drivers/pci/root.h

PciAllocator & pio_regions ()

Defined at line 42 of file ../../src/devices/bus/drivers/pci/root.h

zx_status_t SetBusMasteringUpstream (bool )

Defined at line 43 of file ../../src/devices/bus/drivers/pci/root.h

Protected Methods

void PciRoot (uint32_t mbus_id, ddk::PcirootProtocolClient proto)

PciRootAllocators can be trivially constructed because they only need

a way to call protocol operations. We set three of them up for the root

to use for accessing address space over the pciroot protocol.

1) mmio which tries to get mmio addresses

<

4GB

2) pf_mmio which will allocate anywhere in the mmio space

3) pio which will attempt to allocate from the pio allocator

Defined at line 53 of file ../../src/devices/bus/drivers/pci/root.h

Friends

class Bus