diff options
Diffstat (limited to 'include/linux/pci.h')
-rw-r--r-- | include/linux/pci.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/include/linux/pci.h b/include/linux/pci.h index 507ee52323cd..f1f73f79a180 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -17,8 +17,7 @@ | |||
17 | #ifndef LINUX_PCI_H | 17 | #ifndef LINUX_PCI_H |
18 | #define LINUX_PCI_H | 18 | #define LINUX_PCI_H |
19 | 19 | ||
20 | /* Include the pci register defines */ | 20 | #include <linux/pci_regs.h> /* The pci register defines */ |
21 | #include <linux/pci_regs.h> | ||
22 | 21 | ||
23 | /* | 22 | /* |
24 | * The PCI interface treats multi-function devices as independent | 23 | * The PCI interface treats multi-function devices as independent |
@@ -49,12 +48,22 @@ | |||
49 | #include <linux/list.h> | 48 | #include <linux/list.h> |
50 | #include <linux/compiler.h> | 49 | #include <linux/compiler.h> |
51 | #include <linux/errno.h> | 50 | #include <linux/errno.h> |
51 | #include <linux/kobject.h> | ||
52 | #include <asm/atomic.h> | 52 | #include <asm/atomic.h> |
53 | #include <linux/device.h> | 53 | #include <linux/device.h> |
54 | 54 | ||
55 | /* Include the ID list */ | 55 | /* Include the ID list */ |
56 | #include <linux/pci_ids.h> | 56 | #include <linux/pci_ids.h> |
57 | 57 | ||
58 | /* pci_slot represents a physical slot */ | ||
59 | struct pci_slot { | ||
60 | struct pci_bus *bus; /* The bus this slot is on */ | ||
61 | struct list_head list; /* node in list of slots on this bus */ | ||
62 | struct hotplug_slot *hotplug; /* Hotplug info (migrate over time) */ | ||
63 | unsigned char number; /* PCI_SLOT(pci_dev->devfn) */ | ||
64 | struct kobject kobj; | ||
65 | }; | ||
66 | |||
58 | /* File state for mmap()s on /proc/bus/pci/X/Y */ | 67 | /* File state for mmap()s on /proc/bus/pci/X/Y */ |
59 | enum pci_mmap_state { | 68 | enum pci_mmap_state { |
60 | pci_mmap_io, | 69 | pci_mmap_io, |
@@ -142,6 +151,7 @@ struct pci_dev { | |||
142 | 151 | ||
143 | void *sysdata; /* hook for sys-specific extension */ | 152 | void *sysdata; /* hook for sys-specific extension */ |
144 | struct proc_dir_entry *procent; /* device entry in /proc/bus/pci */ | 153 | struct proc_dir_entry *procent; /* device entry in /proc/bus/pci */ |
154 | struct pci_slot *slot; /* Physical slot this device is in */ | ||
145 | 155 | ||
146 | unsigned int devfn; /* encoded device & function index */ | 156 | unsigned int devfn; /* encoded device & function index */ |
147 | unsigned short vendor; | 157 | unsigned short vendor; |
@@ -266,6 +276,7 @@ struct pci_bus { | |||
266 | struct list_head children; /* list of child buses */ | 276 | struct list_head children; /* list of child buses */ |
267 | struct list_head devices; /* list of devices on this bus */ | 277 | struct list_head devices; /* list of devices on this bus */ |
268 | struct pci_dev *self; /* bridge device as seen by parent */ | 278 | struct pci_dev *self; /* bridge device as seen by parent */ |
279 | struct list_head slots; /* list of slots on this bus */ | ||
269 | struct resource *resource[PCI_BUS_NUM_RESOURCES]; | 280 | struct resource *resource[PCI_BUS_NUM_RESOURCES]; |
270 | /* address space routed to this bus */ | 281 | /* address space routed to this bus */ |
271 | 282 | ||
@@ -488,6 +499,10 @@ struct pci_bus *pci_create_bus(struct device *parent, int bus, | |||
488 | struct pci_ops *ops, void *sysdata); | 499 | struct pci_ops *ops, void *sysdata); |
489 | struct pci_bus *pci_add_new_bus(struct pci_bus *parent, struct pci_dev *dev, | 500 | struct pci_bus *pci_add_new_bus(struct pci_bus *parent, struct pci_dev *dev, |
490 | int busnr); | 501 | int busnr); |
502 | struct pci_slot *pci_create_slot(struct pci_bus *parent, int slot_nr, | ||
503 | const char *name); | ||
504 | void pci_destroy_slot(struct pci_slot *slot); | ||
505 | void pci_update_slot_number(struct pci_slot *slot, int slot_nr); | ||
491 | int pci_scan_slot(struct pci_bus *bus, int devfn); | 506 | int pci_scan_slot(struct pci_bus *bus, int devfn); |
492 | struct pci_dev *pci_scan_single_device(struct pci_bus *bus, int devfn); | 507 | struct pci_dev *pci_scan_single_device(struct pci_bus *bus, int devfn); |
493 | void pci_device_add(struct pci_dev *dev, struct pci_bus *bus); | 508 | void pci_device_add(struct pci_dev *dev, struct pci_bus *bus); |