Spaces:
Runtime error
Runtime error
| /* | |
| * PCI host bridge supporting structures and constants | |
| * | |
| * Copyright (C) 2016, Red Hat Inc, Alexander Gordeev <agordeev@redhat.com> | |
| * | |
| * This work is licensed under the terms of the GNU LGPL, version 2. | |
| */ | |
| struct pci_addr_space { | |
| phys_addr_t pci_start; | |
| phys_addr_t start; | |
| phys_addr_t size; | |
| phys_addr_t allocated; | |
| int type; | |
| }; | |
| struct pci_host_bridge { | |
| phys_addr_t start; | |
| phys_addr_t size; | |
| int bus; | |
| int bus_max; | |
| int nr_addr_spaces; | |
| struct pci_addr_space addr_space[]; | |
| }; | |
| /* | |
| * The following constants are derived from Linux, see this source: | |
| * | |
| * drivers/pci/host/pci-host-generic.c | |
| * struct gen_pci_cfg_bus_ops::bus_shift | |
| * int gen_pci_parse_map_cfg_windows(struct gen_pci *pci) | |
| * | |
| * Documentation/devicetree/bindings/pci/host-generic-pci.txt describes | |
| * ECAM Configuration Space is be memory-mapped by concatenating the various | |
| * components to form an offset: | |
| * | |
| * cfg_offset(bus, device, function, register) = | |
| * bus << 20 | device << 15 | function << 12 | register | |
| */ | |