summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.osdl.org>2003-08-20 21:16:06 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-08-20 21:16:06 -0700
commit922ec28b53f40bdb5dd0d13b059aa7a46f268d50 (patch)
treeb9119ae3a6bcc1ad12565d379d9e6e7995ce2335 /include/linux
parent1fe2d3891d45f85371f8b1c30dbd0086bc0ad9ad (diff)
parent62ec5263505d8dd5dd60ec63ba55f41189cf3246 (diff)
Merge bk://kernel.bkbits.net/gregkh/linux/pci-2.6
into home.osdl.org:/home/torvalds/v2.5/linux
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/pci.h37
1 files changed, 36 insertions, 1 deletions
diff --git a/include/linux/pci.h b/include/linux/pci.h
index a4c7a4c7965e..3c4fc6c62773 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -420,7 +420,9 @@ struct pci_dev {
unsigned int transparent:1; /* Transparent PCI bridge */
unsigned int multifunction:1;/* Part of multi-function device */
#ifdef CONFIG_PCI_NAMES
- char pretty_name[DEVICE_NAME_SIZE]; /* pretty name for users to see */
+#define PCI_NAME_SIZE 50
+#define PCI_NAME_HALF __stringify(20) /* less than half to handle slop */
+ char pretty_name[PCI_NAME_SIZE]; /* pretty name for users to see */
#endif
};
@@ -524,6 +526,32 @@ struct pci_driver {
#define to_pci_driver(drv) container_of(drv,struct pci_driver, driver)
+/**
+ * PCI_DEVICE - macro used to describe a specific pci device
+ * @vend: the 16 bit PCI Vendor ID
+ * @dev: the 16 bit PCI Device ID
+ *
+ * This macro is used to create a struct pci_device_id that matches a
+ * specific device. The subvendor and subdevice fields will be set to
+ * PCI_ANY_ID.
+ */
+#define PCI_DEVICE(vend,dev) \
+ .vendor = (vend), .device = (dev), \
+ .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
+
+/**
+ * PCI_DEVICE_CLASS - macro used to describe a specific pci device class
+ * @dev_class: the class, subclass, prog-if triple for this device
+ * @dev_class_mask: the class mask for this device
+ *
+ * This macro is used to create a struct pci_device_id that matches a
+ * specific PCI class. The vendor, device, subvendor, and subdevice
+ * fields will be set to PCI_ANY_ID.
+ */
+#define PCI_DEVICE_CLASS(dev_class,dev_class_mask) \
+ .class = (dev_class), .class_mask = (dev_class_mask), \
+ .vendor = PCI_ANY_ID, .device = PCI_ANY_ID, \
+ .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID
/* these external functions are only available when PCI support is enabled */
#ifdef CONFIG_PCI
@@ -814,6 +842,13 @@ static inline char *pci_name(struct pci_dev *pdev)
return pdev->dev.bus_id;
}
+/* Some archs want to see the pretty pci name, so use this macro */
+#ifdef CONFIG_PCI_NAMES
+#define pci_pretty_name(dev) ((dev)->pretty_name)
+#else
+#define pci_pretty_name(dev) ""
+#endif
+
/*
* The world is not perfect and supplies us with broken PCI devices.
* For at least a part of these bugs we need a work-around, so both