On 07/18/2018 08:12 AM, David Gibson wrote:
>> +static void pnv_phb3_get_phb_id(Object *obj, Visitor *v, const char *name,
>> +                              void *opaque, Error **errp)
>> +{
>> +    Property *prop = opaque;
>> +    uint32_t *ptr = qdev_get_prop_ptr(DEVICE(obj), prop);
>> +
>> +    visit_type_uint32(v, name, ptr, errp);
>> +}
>> +
>> +static void pnv_phb3_set_phb_id(Object *obj, Visitor *v, const char *name,
>> +                              void *opaque, Error **errp)
>> +{
>> +    PnvPHB3 *phb = PNV_PHB3(obj);
>> +    uint32_t phb_id;
>> +    Error *local_err = NULL;
>> +
>> +    visit_type_uint32(v, name, &phb_id, &local_err);
>> +    if (local_err) {
>> +        error_propagate(errp, local_err);
>> +        return;
>> +    }
>> +
>> +    /*
>> +     * Limit to a maximum of 6 PHBs per chip
>> +     */
>> +    if (phb_id >= PNV8_CHIP_PHB3_MAX) {
>> +        error_setg(errp, "invalid PHB index: '%d'", phb_id);
>> +        return;
>> +    }
>> +
>> +    phb->phb_id = phb_id;
>> +}
>> +
>> +static const PropertyInfo pnv_phb3_phb_id_propinfo = {
>> +    .name = "irq",
>> +    .get = pnv_phb3_get_phb_id,
>> +    .set = pnv_phb3_set_phb_id,
>> +};
> Can't you use a static DeviceProps style property for this, which is a
> bit simpler?

yes but we will need these ops for user creatable devices. This is where
we will check the chip id.

C. 




Reply via email to