35 DBG (
"Adding MCA slot %02x (ID %04x POS " 36 "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x)\n",
42 for ( i = 0 ; i < driver->
id_count ; i++ ) {
49 if ( (
rc = driver->
probe ( mca,
id ) ) != 0 ) {
50 DBG (
"......probe failed\n" );
57 DBG (
"...no driver found\n" );
68 DBG (
"Removed MCA device %02x\n", mca->
slot );
89 mca =
malloc (
sizeof ( *mca ) );
94 memset ( mca, 0,
sizeof ( *mca ) );
105 for ( i = 0 ; i < (
sizeof ( mca->
pos ) /
106 sizeof ( mca->
pos[0] ) ) ; i++ ) {
108 if ( mca->
pos[i] != 0xff )
struct arbelprm_rc_send_wqe rc
static void mca_remove(struct mca_device *mca)
Remove an MCA device.
#define MCA_DRIVERS
MCA driver table.
#define outb_p(data, io_addr)
Write byte to I/O-mapped device, slowly.
struct device dev
Generic device.
#define list_add(new, head)
Add a new entry to the head of a list.
static void mcabus_remove(struct root_device *rootdev)
Remove MCA root bus.
#define GENERIC_MCA_VENDOR
struct mca_driver * driver
Driver for this device.
struct device dev
Device chain.
unsigned int vendor
Vendor ID.
struct device * parent
Bus device.
#define BUS_TYPE_MCA
MCA bus type.
#define list_del(list)
Delete an entry from a list.
#define inb_p(io_addr)
Read byte from I/O-mapped device.
#define ENOMEM
Not enough space.
int(* probe)(struct mca_device *mca, const struct mca_device_id *id)
Probe device.
static int mca_probe(struct mca_device *mca)
Probe an MCA device.
static int mcabus_probe(struct root_device *rootdev)
Probe MCA root bus.
#define MCA_MOTHERBOARD_SETUP_REG
const char * driver_name
Driver name.
#define list_for_each_entry_safe(pos, tmp, head, member)
Iterate over entries in a list, safe against deletion of the current entry.
uint8_t id
Request identifier.
unsigned char pos[8]
POS register values.
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 MCA_ADAPTER_SETUP_REG
unsigned int id_count
Number of entries in MCA ID table.
int(* probe)(struct root_device *rootdev)
Add root device.
void * malloc(size_t size)
Allocate memory.
struct mca_device_id * ids
MCA ID table.
static struct root_driver mca_root_driver
MCA bus root device driver.
#define INIT_LIST_HEAD(list)
Initialise a list head.
unsigned int bus_type
Bus type.
#define ENOTTY
Inappropriate I/O control operation.
unsigned int device
Device ID.
struct list_head children
Devices attached to this device.
unsigned int slot
Slot number.
struct root_device mca_root_device __root_device
MCA bus root device.
struct device_description desc
Device description.
int snprintf(char *buf, size_t size, const char *fmt,...)
Write a formatted string to a buffer.
An MCA device ID list entry.
#define DBG(...)
Print a debugging message.
#define NULL
NULL pointer (VOID *)
void * memset(void *dest, int character, size_t len) __nonnull
void(* remove)(struct mca_device *mca)
Remove device.