iPXE
undirom.h
Go to the documentation of this file.
00001 #ifndef _UNDIROM_H
00002 #define _UNDIROM_H
00003 
00004 /** @file
00005  *
00006  * UNDI expansion ROMs
00007  *
00008  */
00009 
00010 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
00011 
00012 #include <pxe_types.h>
00013 
00014 /** An UNDI PCI device ID */
00015 struct undi_pci_device_id {
00016         /** PCI vendor ID */
00017         unsigned int vendor_id;
00018         /** PCI device ID */
00019         unsigned int device_id;
00020 };
00021 
00022 /** An UNDI device ID */
00023 union undi_device_id {
00024         /** PCI device ID */
00025         struct undi_pci_device_id pci;
00026 };
00027 
00028 /** An UNDI ROM */
00029 struct undi_rom {
00030         /** List of UNDI ROMs */
00031         struct list_head list;
00032         /** ROM segment address */
00033         unsigned int rom_segment;
00034         /** UNDI loader entry point */
00035         SEGOFF16_t loader_entry;
00036         /** Code segment size */
00037         size_t code_size;
00038         /** Data segment size */
00039         size_t data_size;
00040         /** Bus type
00041          *
00042          * Values are as used by @c PXENV_UNDI_GET_NIC_TYPE
00043          */
00044         unsigned int bus_type;
00045         /** Device ID */
00046         union undi_device_id bus_id;
00047 };
00048 
00049 extern struct undi_rom * undirom_find_pci ( unsigned int vendor_id,
00050                                             unsigned int device_id,
00051                                             unsigned int rombase );
00052 
00053 #endif /* _UNDIROM_H */