Move RELOCATE into config.h
[people/lynusvaz/gpxe.git] / src / include / isa.h
1 #ifndef ISA_H
2 #define ISA_H
3
4 #include "isa_ids.h"
5 #include "dev.h"
6
7 /*
8  * A physical ISA device
9  *
10  */
11 struct isa_device {
12         char *magic; /* must be first */
13         unsigned int probe_idx;
14         uint16_t ioaddr;
15         int already_tried;
16 };
17
18 /*
19  * An individual ISA device, identified by probe address
20  *
21  */
22 typedef uint16_t isa_probe_addr_t;
23
24 /*
25  * An ISA driver, with a probe address list and a probe_addr method.
26  * probe_addr() should return 1 if a card is physically present,
27  * leaving the other operations (read MAC address etc.) down to the
28  * main probe() routine.
29  *
30  */
31 struct isa_driver {
32         const char *name;
33         isa_probe_addr_t *probe_addrs;
34         unsigned int addr_count;
35         int ( * probe_addr ) ( isa_probe_addr_t addr );
36         uint16_t mfg_id;
37         uint16_t prod_id;
38 };
39
40 /*
41  * Define an ISA driver
42  *
43  */
44 #define ISA_DRIVER( _name, _probe_addrs, _probe_addr, _mfg_id, _prod_id ) { \
45         .name = _name,                                                      \
46         .probe_addrs = _probe_addrs,                                        \
47         .addr_count = sizeof ( _probe_addrs ) / sizeof ( _probe_addrs[0] ), \
48         .probe_addr = _probe_addr,                                          \
49         .mfg_id = _mfg_id,                                                  \
50         .prod_id = _prod_id,                                                \
51 }
52
53 /*
54  * ISA_ROM is parsed by parserom.pl to generate Makefile rules and
55  * files for rom-o-matic.
56  *
57  */
58 #define ISA_ROM( IMAGE, DESCRIPTION )
59
60 /*
61  * Functions in isa.c
62  *
63  */
64 extern int find_isa_device ( struct isa_device *eisa,
65                              struct isa_driver *driver );
66 extern int find_isa_boot_device ( struct dev *dev,
67                                   struct isa_driver *driver );
68
69 #endif /* ISA_H */
70