summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/isa/isa_common.c8
-rw-r--r--sys/isa/isa_common.h3
-rw-r--r--sys/isa/isavar.h4
3 files changed, 14 insertions, 1 deletions
diff --git a/sys/isa/isa_common.c b/sys/isa/isa_common.c
index 6d87b7a..22677e3 100644
--- a/sys/isa/isa_common.c
+++ b/sys/isa/isa_common.c
@@ -748,6 +748,10 @@ isa_read_ivar(device_t bus, device_t dev, int index, uintptr_t * result)
*result = idev->id_compatid;
break;
+ case ISA_IVAR_CONFIGATTR:
+ *result = idev->id_config_attr;
+ break;
+
default:
return ENOENT;
}
@@ -792,6 +796,10 @@ isa_write_ivar(device_t bus, device_t dev,
idev->id_compatid = value;
break;
+ case ISA_IVAR_CONFIGATTR:
+ idev->id_config_attr = value;
+ break;
+
default:
return (ENOENT);
}
diff --git a/sys/isa/isa_common.h b/sys/isa/isa_common.h
index 70b8b33..b940d14 100644
--- a/sys/isa/isa_common.h
+++ b/sys/isa/isa_common.h
@@ -57,6 +57,9 @@ struct isa_device {
struct isa_config_list id_configs; /* pnp config alternatives */
isa_config_cb *id_config_cb; /* callback function */
void *id_config_arg; /* callback argument */
+ int id_config_attr; /* pnp config attributes */
+#define ISACFGATTR_CANDISABLE (1 << 0) /* can be disabled */
+#define ISACFGATTR_DYNAMIC (1 << 1) /* dynamic configuration */
};
#define DEVTOISA(dev) ((struct isa_device *) device_get_ivars(dev))
diff --git a/sys/isa/isavar.h b/sys/isa/isavar.h
index 856b519..d81685c 100644
--- a/sys/isa/isavar.h
+++ b/sys/isa/isavar.h
@@ -123,7 +123,8 @@ enum isa_device_ivars {
ISA_IVAR_VENDORID,
ISA_IVAR_SERIAL,
ISA_IVAR_LOGICALID,
- ISA_IVAR_COMPATID
+ ISA_IVAR_COMPATID,
+ ISA_IVAR_CONFIGATTR
};
/*
@@ -154,6 +155,7 @@ ISA_ACCESSOR(vendorid, VENDORID, int)
ISA_ACCESSOR(serial, SERIAL, int)
ISA_ACCESSOR(logicalid, LOGICALID, int)
ISA_ACCESSOR(compatid, COMPATID, int)
+ISA_ACCESSOR(configattr, CONFIGATTR, int)
extern intrmask_t isa_irq_pending(void);
extern void isa_probe_children(device_t dev);
OpenPOWER on IntegriCloud