4 FILE_LICENCE ( GPL2_OR_LATER
);
7 #include <gpxe/isa_ids.h>
8 #include <gpxe/device.h>
9 #include <gpxe/tables.h>
17 /** Driver for this device */
18 struct isa_driver
*driver
;
19 /** Driver-private data
21 * Use isa_set_drvdata() and isa_get_drvdata() to access
26 const char *driver_name
;
30 * An individual ISA device, identified by probe address
33 typedef uint16_t isa_probe_addr_t
;
39 /** Probe address list */
40 isa_probe_addr_t
*probe_addrs
;
41 /** Number of entries in probe address list */
42 unsigned int addr_count
;
43 /** Manufacturer ID to be assumed for this device */
45 /** Product ID to be assumed for this device */
51 * @v id Matching entry in ID table
52 * @ret rc Return status code
54 int ( * probe
) ( struct isa_device
*isa
);
60 void ( * remove
) ( struct isa_device
*isa
);
63 /** ISA driver table */
64 #define ISA_DRIVERS __table ( struct isa_driver, "isa_drivers" )
66 /** Declare an ISA driver */
67 #define __isa_driver __table_entry ( ISA_DRIVERS, 01 )
70 * Set ISA driver-private data
73 * @v priv Private data
75 static inline void isa_set_drvdata ( struct isa_device
*isa
, void *priv
) {
80 * Get ISA driver-private data
83 * @ret priv Private data
85 static inline void * isa_get_drvdata ( struct isa_device
*isa
) {
90 * ISA_ROM is parsed by parserom.pl to generate Makefile rules and
91 * files for rom-o-matic.
94 #define ISA_ROM( IMAGE, DESCRIPTION )