1 #include <linux/kernel.h>
3 #include <linux/module.h>
6 int pci_hotplug (struct device *dev, char **envp, int num_envp,
7 char *buffer, int buffer_size)
17 pdev = to_pci_dev(dev);
23 /* stuff we want to pass to /sbin/hotplug */
25 length += scnprintf (scratch, buffer_size - length, "PCI_CLASS=%04X",
27 if ((buffer_size - length <= 0) || (i >= num_envp))
33 length += scnprintf (scratch, buffer_size - length, "PCI_ID=%04X:%04X",
34 pdev->vendor, pdev->device);
35 if ((buffer_size - length <= 0) || (i >= num_envp))
41 length += scnprintf (scratch, buffer_size - length,
42 "PCI_SUBSYS_ID=%04X:%04X", pdev->subsystem_vendor,
43 pdev->subsystem_device);
44 if ((buffer_size - length <= 0) || (i >= num_envp))
50 length += scnprintf (scratch, buffer_size - length, "PCI_SLOT_NAME=%s",
52 if ((buffer_size - length <= 0) || (i >= num_envp))
56 length += scnprintf (scratch, buffer_size - length,
57 "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x",
58 pdev->vendor, pdev->device,
59 pdev->subsystem_vendor, pdev->subsystem_device,
60 (u8)(pdev->class >> 16), (u8)(pdev->class >> 8),
62 if ((buffer_size - length <= 0) || (i >= num_envp))