summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorKONRAD Frederic <frederic.konrad@adacore.com>2017-08-25 13:46:09 +0200
committerMichael Tokarev <mjt@tls.msk.ru>2017-09-26 09:06:02 +0300
commitb9710bc911d8f3dbdb339296283b27951a8566f3 (patch)
treed184b9c79b1dfe4cf0362a7dcc9ba12104504ee0 /hw
parent401bc051d7706e33046d79539465b8326383a1b2 (diff)
downloadqemu-b9710bc911d8f3dbdb339296283b27951a8566f3.tar.gz
aux-to-i2c-bridge: don't allow user to create one
This device is private and is created once per aux-bus. So don't allow the user to create one from command-line. Reported-by: Thomas Huth <thuth@redhat.com> Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Diffstat (limited to 'hw')
-rw-r--r--hw/misc/auxbus.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/hw/misc/auxbus.c b/hw/misc/auxbus.c
index 8a90ddda84..1182745044 100644
--- a/hw/misc/auxbus.c
+++ b/hw/misc/auxbus.c
@@ -210,6 +210,16 @@ struct AUXTOI2CState {
I2CBus *i2c_bus;
};
+static void aux_bridge_class_init(ObjectClass *oc, void *data)
+{
+ DeviceClass *dc = DEVICE_CLASS(oc);
+
+ /* This device is private and is created only once for each
+ * aux-bus in aux_init_bus(..). So don't allow the user to add one.
+ */
+ dc->user_creatable = false;
+}
+
static void aux_bridge_init(Object *obj)
{
AUXTOI2CState *s = AUXTOI2C(obj);
@@ -225,6 +235,7 @@ static inline I2CBus *aux_bridge_get_i2c_bus(AUXTOI2CState *bridge)
static const TypeInfo aux_to_i2c_type_info = {
.name = TYPE_AUXTOI2C,
.parent = TYPE_DEVICE,
+ .class_init = aux_bridge_class_init,
.instance_size = sizeof(AUXTOI2CState),
.instance_init = aux_bridge_init
};