• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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