pci-stub.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* pci-stub - simple stub driver to reserve a pci device
  2. *
  3. * Copyright (C) 2008 Red Hat, Inc.
  4. * Author:
  5. * Chris Wright
  6. *
  7. * This work is licensed under the terms of the GNU GPL, version 2.
  8. *
  9. * Usage is simple, allocate a new id to the stub driver and bind the
  10. * device to it. For example:
  11. *
  12. * # echo "8086 10f5" > /sys/bus/pci/drivers/pci-stub/new_id
  13. * # echo -n 0000:00:19.0 > /sys/bus/pci/drivers/e1000e/unbind
  14. * # echo -n 0000:00:19.0 > /sys/bus/pci/drivers/pci-stub/bind
  15. * # ls -l /sys/bus/pci/devices/0000:00:19.0/driver
  16. * .../0000:00:19.0/driver -> ../../../bus/pci/drivers/pci-stub
  17. */
  18. #include <linux/module.h>
  19. #include <linux/pci.h>
  20. static int pci_stub_probe(struct pci_dev *dev, const struct pci_device_id *id)
  21. {
  22. return 0;
  23. }
  24. static struct pci_driver stub_driver = {
  25. .name = "pci-stub",
  26. .id_table = NULL, /* only dynamic id's */
  27. .probe = pci_stub_probe,
  28. };
  29. static int __init pci_stub_init(void)
  30. {
  31. return pci_register_driver(&stub_driver);
  32. }
  33. static void __exit pci_stub_exit(void)
  34. {
  35. pci_unregister_driver(&stub_driver);
  36. }
  37. module_init(pci_stub_init);
  38. module_exit(pci_stub_exit);
  39. MODULE_LICENSE("GPL");
  40. MODULE_AUTHOR("Chris Wright <chrisw@sous-sol.org>");