Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] Architecture: [ i386 ]
  1 #include <linux/kernel.h>
  2 #include <linux/pci.h>
  3 #include <linux/module.h>
  4 #include "pci.h"
  5 
  6 int pci_uevent(struct device *dev, struct kobj_uevent_env *env)
  7 {
  8         struct pci_dev *pdev;
  9 
 10         if (!dev)
 11                 return -ENODEV;
 12 
 13         pdev = to_pci_dev(dev);
 14         if (!pdev)
 15                 return -ENODEV;
 16 
 17         if (add_uevent_var(env, "PCI_CLASS=%04X", pdev->class))
 18                 return -ENOMEM;
 19 
 20         if (add_uevent_var(env, "PCI_ID=%04X:%04X", pdev->vendor, pdev->device))
 21                 return -ENOMEM;
 22 
 23         if (add_uevent_var(env, "PCI_SUBSYS_ID=%04X:%04X", pdev->subsystem_vendor,
 24                            pdev->subsystem_device))
 25                 return -ENOMEM;
 26 
 27         if (add_uevent_var(env, "PCI_SLOT_NAME=%s", pci_name(pdev)))
 28                 return -ENOMEM;
 29 
 30         if (add_uevent_var(env, "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x",
 31                            pdev->vendor, pdev->device,
 32                            pdev->subsystem_vendor, pdev->subsystem_device,
 33                            (u8)(pdev->class >> 16), (u8)(pdev->class >> 8),
 34                            (u8)(pdev->class)))
 35                 return -ENOMEM;
 36         return 0;
 37 }
 38 
  This page was automatically generated by the LXR engine.