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.
106 isa =
malloc (
sizeof ( *isa ) );
111 memset ( isa, 0,
sizeof ( *isa ) );
struct arbelprm_rc_send_wqe rc
uint16_t ioaddr
I/O address.
struct device dev
Generic device.
#define list_add(new, head)
Add a new entry to the head of a list.
uint16_t prod_id
Product ID to be assumed for this device.
#define ISA_IOADDR(driver, ioidx)
struct device dev
Device chain.
unsigned int vendor
Vendor ID.
struct device * parent
Bus device.
uint16_t vendor_id
Manufacturer ID to be assumed for this device.
#define list_del(list)
Delete an entry from a list.
#define ENOMEM
Not enough space.
#define BUS_TYPE_ISA
ISA bus type.
static void isabus_remove(struct root_device *rootdev)
Remove ISA root bus.
const char * driver_name
Driver name.
static int isa_probe(struct isa_device *isa)
Probe an ISA device.
static void(* free)(struct refcnt *refcnt))
struct list_head siblings
Devices on the same bus.
#define for_each_table_entry(pointer, table)
Iterate through all entries within a linker table.
#define ISA_DRIVERS
ISA driver table.
void * malloc(size_t size)
Allocate memory.
#define INIT_LIST_HEAD(list)
Initialise a list head.
unsigned int bus_type
Bus type.
unsigned int device
Device ID.
struct list_head children
Devices attached to this device.
struct device_description desc
Device description.
int snprintf(char *buf, size_t size, const char *fmt,...)
Write a formatted string to a buffer.
#define ISA_IOIDX_MAX(driver)
struct isa_driver * driver
Driver for this device.
#define ISA_IOIDX_MIN(driver)
#define NULL
NULL pointer (VOID *)
void * memset(void *dest, int character, size_t len) __nonnull
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(), isa_driver::name, device::name, NULL, device::parent, isa_driver::prod_id, rc, device::siblings, snprintf(), device_description::vendor, and isa_driver::vendor_id.