You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef _UNDIROM_H
  2. #define _UNDIROM_H
  3. /** @file
  4. *
  5. * UNDI expansion ROMs
  6. *
  7. */
  8. FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
  9. #include <pxe_types.h>
  10. /** An UNDI PCI device ID */
  11. struct undi_pci_device_id {
  12. /** PCI vendor ID */
  13. unsigned int vendor_id;
  14. /** PCI device ID */
  15. unsigned int device_id;
  16. };
  17. /** An UNDI device ID */
  18. union undi_device_id {
  19. /** PCI device ID */
  20. struct undi_pci_device_id pci;
  21. };
  22. /** An UNDI ROM */
  23. struct undi_rom {
  24. /** List of UNDI ROMs */
  25. struct list_head list;
  26. /** ROM segment address */
  27. unsigned int rom_segment;
  28. /** UNDI loader entry point */
  29. SEGOFF16_t loader_entry;
  30. /** Code segment size */
  31. size_t code_size;
  32. /** Data segment size */
  33. size_t data_size;
  34. /** Bus type
  35. *
  36. * Values are as used by @c PXENV_UNDI_GET_NIC_TYPE
  37. */
  38. unsigned int bus_type;
  39. /** Device ID */
  40. union undi_device_id bus_id;
  41. };
  42. extern struct undi_rom * undirom_find_pci ( unsigned int vendor_id,
  43. unsigned int device_id,
  44. unsigned int rombase );
  45. #endif /* _UNDIROM_H */