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
))