Messages in this thread Patch in this message | | | Date | Sat, 12 Feb 2000 15:59:23 -0500 | From | Paul Barton-Davis <> | Subject | [PATCH] fix for pci.h when compiling without PCI |
| |
I was building a kernel for an old 486 this morning, which revealed a problem with pci.h when you config without PCI. Here's a fix.
--p
--- linux/include/linux/pci.h.orig Sat Feb 12 10:04:41 2000 +++ linux/include/linux/pci.h Sat Feb 12 11:21:17 2000 @@ -438,7 +438,6 @@ /* Backward compatibility, don't use in new code! */ -int pcibios_present(void); #define pci_present pcibios_present int pcibios_read_config_byte (unsigned char bus, unsigned char dev_fn, unsigned char where, unsigned char *val); @@ -459,6 +458,12 @@ /* Generic PCI functions used internally */ +#define PCI_ANY_ID (~0) + +#ifdef CONFIG_PCI + +int pcibios_present(void); /* Backward compatibility, don't use in new code! */ + void pci_init(void); struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, void *sysdata); struct pci_bus *pci_alloc_primary_bus(int bus); @@ -479,9 +484,6 @@ const struct pci_dev *from); struct pci_dev *pci_find_class (unsigned int class, const struct pci_dev *from); struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn); -int pci_find_capability (struct pci_dev *dev, int cap); - -#define PCI_ANY_ID (~0) int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val); int pci_read_config_word(struct pci_dev *dev, int where, u16 *val); @@ -492,6 +494,46 @@ int pci_enable_device(struct pci_dev *dev); void pci_set_master(struct pci_dev *dev); + +#else /* !CONFIG_PCI */ + +/* + * If the system does not have PCI, clearly these return errors. Define + * these as simple inline functions to avoid hair in drivers. + */ + +extern inline int pcibios_present(void) { return 0; } + +#define _PCI_NOP(o,s,t) \ + extern inline int pcibios_##o##_config_##s## (u8 bus, u8 dfn, u8 where, t val) \ + { return PCIBIOS_FUNC_NOT_SUPPORTED; } \ + extern inline int pci_##o##_config_##s## (struct pci_dev *dev, int where, t val) \ + { return PCIBIOS_FUNC_NOT_SUPPORTED; } +#define _PCI_NOP_ALL(o,x) _PCI_NOP(o,byte,u8 x) \ + _PCI_NOP(o,word,u16 x) \ + _PCI_NOP(o,dword,u32 x) +_PCI_NOP_ALL(read, *) +_PCI_NOP_ALL(write,) + +extern inline struct pci_dev *pci_find_device(unsigned int vendor, unsigned int device, const struct pci_dev *from) +{ return NULL; } + +extern inline struct pci_dev *pci_find_class(unsigned int class, const struct pci_dev *from) +{ return NULL; } + +extern inline struct pci_dev *pci_find_slot(unsigned int bus, unsigned int devfn) +{ return NULL; } + +extern inline struct pci_dev *pci_find_subsys(unsigned int vendor, unsigned int device, +unsigned int ss_vendor, unsigned int ss_device, const struct pci_dev *from) +{ return NULL; } + +extern inline void pci_set_master(struct pci_dev *dev) { } +extern inline int pci_enable_device(struct pci_dev *dev) { return 0; } + +#endif /* CONFIG_PCI */ + +int pci_find_capability (struct pci_dev *dev, int cap); int pci_set_power_state(struct pci_dev *dev, int state); int pci_assign_resource(struct pci_dev *dev, int i); @@ -535,42 +577,6 @@ struct pci_driver *pci_dev_driver(const struct pci_dev *); const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev); -/* - * If the system does not have PCI, clearly these return errors. Define - * these as simple inline functions to avoid hair in drivers. - */ - -#ifndef CONFIG_PCI -extern inline int pcibios_present(void) { return 0; } - -#define _PCI_NOP(o,s,t) \ - extern inline int pcibios_##o##_config_##s## (u8 bus, u8 dfn, u8 where, t val) \ - { return PCIBIOS_FUNC_NOT_SUPPORTED; } \ - extern inline int pci_##o##_config_##s## (struct pci_dev *dev, int where, t val) \ - { return PCIBIOS_FUNC_NOT_SUPPORTED; } -#define _PCI_NOP_ALL(o,x) _PCI_NOP(o,byte,u8 x) \ - _PCI_NOP(o,word,u16 x) \ - _PCI_NOP(o,dword,u32 x) -_PCI_NOP_ALL(read, *) -_PCI_NOP_ALL(write,) - -extern inline struct pci_dev *pci_find_device(unsigned int vendor, unsigned int device, const struct pci_dev *from) -{ return NULL; } - -extern inline struct pci_dev *pci_find_class(unsigned int class, const struct pci_dev *from) -{ return NULL; } - -extern inline struct pci_dev *pci_find_slot(unsigned int bus, unsigned int devfn) -{ return NULL; } - -extern inline struct pci_dev *pci_find_subsys(unsigned int vendor, unsigned int device, -unsigned int ss_vendor, unsigned int ss_device, const struct pci_dev *from) -{ return NULL; } - -extern inline void pci_set_master(struct pci_dev *dev) { } -extern inline int pci_enable_device(struct pci_dev *dev) { return 0; } - -#endif /* !CONFIG_PCI */ /* these helpers provide future and backwards compatibility * for accessing popular PCI BAR info */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |