Home | History | Annotate | Download | only in include
      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