Probe ISA root bus.
- Parameters
-
| rootdev | ISA bus root device |
Scans the ISA bus for devices and registers all devices it can find.
Definition at line 95 of file isa.c.
95 {
98 long ioidx;
100
104
105 if ( ! isa )
106 isa =
malloc (
sizeof ( *isa ) );
107 if ( ! isa ) {
109 goto err;
110 }
111 memset ( isa, 0,
sizeof ( *isa ) );
114
115
126
127
129
131 } else {
132
134 }
135 }
136 }
137
139 return 0;
140
141 err:
145}
#define NULL
NULL pointer (VOID *)
#define BUS_TYPE_ISA
ISA bus type.
#define ENOMEM
Not enough space.
#define ISA_DRIVERS
ISA driver table.
void * memset(void *dest, int character, size_t len) __nonnull
static int isa_probe(struct isa_device *isa)
Probe an ISA device.
#define ISA_IOIDX_MAX(driver)
#define ISA_IOADDR(driver, ioidx)
static void isabus_remove(struct root_device *rootdev)
Remove ISA root bus.
#define ISA_IOIDX_MIN(driver)
#define INIT_LIST_HEAD(list)
Initialise a list head.
#define list_add(new, head)
Add a new entry to the head of a list.
void * malloc(size_t size)
Allocate memory.
unsigned int bus_type
Bus type.
unsigned int device
Device ID.
unsigned int vendor
Vendor ID.
struct device_description desc
Device description.
struct device * parent
Bus device.
const char * driver_name
Driver name.
uint16_t vendor_id
Manufacturer ID to be assumed for this device.
uint16_t prod_id
Product ID to be assumed for this device.
#define for_each_table_entry(pointer, table)
Iterate through all entries within a linker table.
int snprintf(char *buf, size_t size, const char *fmt,...)
Write a formatted string to a buffer.
References device_description::bus_type, BUS_TYPE_ISA, device::children, device::desc, isa_device::dev, root_device::dev, device_description::device, isa_device::driver, device::driver_name, ENOMEM, for_each_table_entry, free, INIT_LIST_HEAD, isa_device::ioaddr, ISA_DRIVERS, ISA_IOADDR, ISA_IOIDX_MAX, ISA_IOIDX_MIN, isa_probe(), isabus_remove(), list_add, list_del, malloc(), memset(), device::name, isa_driver::name, NULL, device::parent, isa_driver::prod_id, rc, device::siblings, snprintf(), device_description::vendor, and isa_driver::vendor_id.