summaryrefslogtreecommitdiffstats
path: root/src/include/device/pci.h
diff options
context:
space:
mode:
authorEdward O'Callaghan <eocallaghan@alterapraxis.com>2014-07-09 04:55:16 +1000
committerEdward O'Callaghan <eocallaghan@alterapraxis.com>2014-07-19 11:57:06 +0200
commitc2956e7752213f9eae5064e63d16afa84b7cc23f (patch)
treeae4d6921ee68467704038728e5e89eebd71d644e /src/include/device/pci.h
parentb666793925a1fa175f9b6cc12bec051a3a31d23b (diff)
downloadcoreboot-c2956e7752213f9eae5064e63d16afa84b7cc23f.tar.gz
coreboot-c2956e7752213f9eae5064e63d16afa84b7cc23f.tar.bz2
coreboot-c2956e7752213f9eae5064e63d16afa84b7cc23f.zip
device/pci_early.c: Mixes up variants of a typedefs to 'u32'
Unfortunately coreboot has to deal with ROMCC's short comings which has lead to a little bit of confusion due to typedefs. Essentially, coreboot defines four typedefs: * 'typedef struct device * device_t' in ramstage not in SIMPLE_DEVICE mode * 'typedef u32 device_t' in romstage or when SIMPLE_DEVICE is defined * 'typedef u32 pnp_devfn_t' * 'typedef u32 pci_devfn_t' Some early functions make use of 'device_t' over 'pci_devfn_t' and since the C type-checker does not enforce typedefs to the same type 'u32' these are never noticed. Fix these so that 'device_t' does not conflict in romstage for later work. We later plan to have 'pnp_devfn_t' and 'pci_devfn_t' as the only variants of 'u32' and 'device_t' to be a struct pointer type exclusively. Change-Id: I948801f5be968a934798f1bad7722649758cd4d3 Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Reviewed-on: http://review.coreboot.org/6225 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
Diffstat (limited to 'src/include/device/pci.h')
-rw-r--r--src/include/device/pci.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/include/device/pci.h b/src/include/device/pci.h
index 81759706aa27..0670da482221 100644
--- a/src/include/device/pci.h
+++ b/src/include/device/pci.h
@@ -102,8 +102,14 @@ static inline const struct pci_operations *ops_pci(device_t dev)
#endif /* ! __SIMPLE_DEVICE__ */
+#ifdef __PRE_RAM__
+unsigned pci_find_next_capability(pci_devfn_t dev, unsigned cap, unsigned last);
+unsigned pci_find_capability(pci_devfn_t dev, unsigned cap);
+#else /* !__PRE_RAM__ */
unsigned pci_find_next_capability(device_t dev, unsigned cap, unsigned last);
unsigned pci_find_capability(device_t dev, unsigned cap);
+#endif /* __PRE_RAM__ */
+
void pci_early_bridge_init(void);
int pci_early_device_probe(u8 bus, u8 dev, u32 mmio_base);