Skip to content
  • Markus Armbruster's avatar
    3e80f690
    qdev: Convert uses of qdev_create() with Coccinelle · 3e80f690
    Markus Armbruster authored
    
    
    This is the transformation explained in the commit before previous.
    Takes care of just one pattern that needs conversion.  More to come in
    this series.
    
    Coccinelle script:
    
        @ depends on !(file in "hw/arm/highbank.c")@
        expression bus, type_name, dev, expr;
        @@
        -    dev = qdev_create(bus, type_name);
        +    dev = qdev_new(type_name);
             ... when != dev = expr
        -    qdev_init_nofail(dev);
        +    qdev_realize_and_unref(dev, bus, &error_fatal);
    
        @@
        expression bus, type_name, dev, expr;
        identifier DOWN;
        @@
        -    dev = DOWN(qdev_create(bus, type_name));
        +    dev = DOWN(qdev_new(type_name));
             ... when != dev = expr
        -    qdev_init_nofail(DEVICE(dev));
        +    qdev_realize_and_unref(DEVICE(dev), bus, &error_fatal);
    
        @@
        expression bus, type_name, expr;
        identifier dev;
        @@
        -    DeviceState *dev = qdev_create(bus, type_name);
        +    DeviceState *dev = qdev_new(type_name);
             ... when != dev = expr
        -    qdev_init_nofail(dev);
        +    qdev_realize_and_unref(dev, bus, &error_fatal);
    
        @@
        expression bus, type_name, dev, expr, errp;
        symbol true;
        @@
        -    dev = qdev_create(bus, type_name);
        +    dev = qdev_new(type_name);
             ... when != dev = expr
        -    object_property_set_bool(OBJECT(dev), true, "realized", errp);
        +    qdev_realize_and_unref(dev, bus, errp);
    
        @@
        expression bus, type_name, expr, errp;
        identifier dev;
        symbol true;
        @@
        -    DeviceState *dev = qdev_create(bus, type_name);
        +    DeviceState *dev = qdev_new(type_name);
             ... when != dev = expr
        -    object_property_set_bool(OBJECT(dev), true, "realized", errp);
        +    qdev_realize_and_unref(dev, bus, errp);
    
    The first rule exempts hw/arm/highbank.c, because it matches along two
    control flow paths there, with different @type_name.  Covered by the
    next commit's manual conversions.
    
    Missing #include "qapi/error.h" added manually.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Message-Id: <20200610053247.1583243-10-armbru@redhat.com>
    [Conflicts in hw/misc/empty_slot.c and hw/sparc/leon3.c resolved]
    3e80f690
    qdev: Convert uses of qdev_create() with Coccinelle
    Markus Armbruster authored
    
    
    This is the transformation explained in the commit before previous.
    Takes care of just one pattern that needs conversion.  More to come in
    this series.
    
    Coccinelle script:
    
        @ depends on !(file in "hw/arm/highbank.c")@
        expression bus, type_name, dev, expr;
        @@
        -    dev = qdev_create(bus, type_name);
        +    dev = qdev_new(type_name);
             ... when != dev = expr
        -    qdev_init_nofail(dev);
        +    qdev_realize_and_unref(dev, bus, &error_fatal);
    
        @@
        expression bus, type_name, dev, expr;
        identifier DOWN;
        @@
        -    dev = DOWN(qdev_create(bus, type_name));
        +    dev = DOWN(qdev_new(type_name));
             ... when != dev = expr
        -    qdev_init_nofail(DEVICE(dev));
        +    qdev_realize_and_unref(DEVICE(dev), bus, &error_fatal);
    
        @@
        expression bus, type_name, expr;
        identifier dev;
        @@
        -    DeviceState *dev = qdev_create(bus, type_name);
        +    DeviceState *dev = qdev_new(type_name);
             ... when != dev = expr
        -    qdev_init_nofail(dev);
        +    qdev_realize_and_unref(dev, bus, &error_fatal);
    
        @@
        expression bus, type_name, dev, expr, errp;
        symbol true;
        @@
        -    dev = qdev_create(bus, type_name);
        +    dev = qdev_new(type_name);
             ... when != dev = expr
        -    object_property_set_bool(OBJECT(dev), true, "realized", errp);
        +    qdev_realize_and_unref(dev, bus, errp);
    
        @@
        expression bus, type_name, expr, errp;
        identifier dev;
        symbol true;
        @@
        -    DeviceState *dev = qdev_create(bus, type_name);
        +    DeviceState *dev = qdev_new(type_name);
             ... when != dev = expr
        -    object_property_set_bool(OBJECT(dev), true, "realized", errp);
        +    qdev_realize_and_unref(dev, bus, errp);
    
    The first rule exempts hw/arm/highbank.c, because it matches along two
    control flow paths there, with different @type_name.  Covered by the
    next commit's manual conversions.
    
    Missing #include "qapi/error.h" added manually.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Message-Id: <20200610053247.1583243-10-armbru@redhat.com>
    [Conflicts in hw/misc/empty_slot.c and hw/sparc/leon3.c resolved]
Loading