patch-2.3.47 linux/include/linux/pci.h
Next file: linux/include/linux/pci_ids.h
Previous file: linux/include/linux/nfsd/xdr3.h
Back to the patch index
Back to the overall index
- Lines: 54
- Date:
Sun Feb 20 20:48:23 2000
- Orig file:
v2.3.46/linux/include/linux/pci.h
- Orig date:
Thu Feb 10 17:11:22 2000
diff -u --recursive --new-file v2.3.46/linux/include/linux/pci.h linux/include/linux/pci.h
@@ -286,6 +286,12 @@
#include <linux/ioport.h>
#include <linux/list.h>
+/* This defines the direction arg to the DMA mapping routines. */
+#define PCI_DMA_BIDIRECTIONAL 0
+#define PCI_DMA_TODEVICE 1
+#define PCI_DMA_FROMDEVICE 2
+#define PCI_DMA_NONE 3
+
#include <asm/pci.h>
#define DEVICE_COUNT_COMPATIBLE 4
@@ -568,7 +574,39 @@
{ return NULL; }
extern inline void pci_set_master(struct pci_dev *dev) { }
-extern inline int pci_enable_device(struct pci_dev *dev) { return 0; }
+extern inline int pci_enable_device(struct pci_dev *dev) { return -EIO; }
+extern inline int pci_module_init(struct pci_driver *drv) { return -ENODEV; }
+
+#else
+
+/*
+ * a helper function which helps ensure correct pci_driver
+ * setup and cleanup for commonly-encountered hotplug/modular cases
+ *
+ * This MUST stay in a header, as it checks for -DMODULE
+ */
+extern inline int pci_module_init(struct pci_driver *drv)
+{
+ int rc = pci_register_driver (drv);
+
+ if (rc > 0)
+ return 0;
+
+ /* iff CONFIG_HOTPLUG and built into kernel, we should
+ * leave the driver around for future hotplug events.
+ * For the module case, a hotplug daemon of some sort
+ * should load a module in response to an insert event. */
+#if defined(CONFIG_HOTPLUG) && !defined(MODULE)
+ if (rc == 0)
+ return 0;
+#endif
+
+ /* if we get here, we need to clean up pci driver instance
+ * and return some sort of error */
+ pci_unregister_driver (drv);
+
+ return -ENODEV;
+}
#endif /* !CONFIG_PCI */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)