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