Separated out UNDI ROM location code into undirom.c, and use struct
[people/xl0/gpxe.git] / src / arch / i386 / include / undirom.h
1 #ifndef _UNDIROM_H
2 #define _UNDIROM_H
3
4 /** @file
5  *
6  * UNDI expansion ROMs
7  *
8  */
9
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
18 /** An UNDI device ID */
19 union undi_device_id {
20         /** PCI device ID */
21         struct undi_pci_device_id pci;
22 };
23
24 /** An UNDI ROM */
25 struct undi_rom {
26         /** List of UNDI ROMs */
27         struct list_head list;
28         /** ROM segment address */
29         unsigned int rom_segment;
30         /** UNDI loader entry point */
31         SEGOFF16_t loader_entry;
32         /** Code segment size */
33         size_t code_size;
34         /** Data segment size */
35         size_t data_size;
36         /** Bus type
37          *
38          * Values are as used by @c PXENV_UNDI_GET_NIC_TYPE
39          */
40         unsigned int bus_type;
41         /** Device ID */
42         union undi_device_id bus_id;
43 };
44
45 extern struct undi_rom * undirom_find_pci ( unsigned int vendor_id,
46                                             unsigned int device_id,
47                                             unsigned int rombase );
48
49 #endif /* _UNDIROM_H */