Hi, > PropertyInfo qdev_prop_drive = { > .name = "drive", > .type = PROP_TYPE_DRIVE, > .size = sizeof(BlockDriverState *), > .parse = parse_drive, > .print = print_drive, > + .get = get_generic, > + .set = set_generic, > .free = free_drive, > }; > > @@ -407,6 +687,8 @@ PropertyInfo qdev_prop_chr = { > .size = sizeof(CharDriverState*), > .parse = parse_chr, > .print = print_chr, > + .get = get_generic, > + .set = set_generic, > }; > > /* --- netdev device --- */ > @@ -441,6 +723,8 @@ PropertyInfo qdev_prop_netdev = { > .size = sizeof(VLANClientState*), > .parse = parse_netdev, > .print = print_netdev, > + .get = get_generic, > + .set = set_generic, > };
> PropertyInfo qdev_prop_vlan = { > .name = "vlan", > .type = PROP_TYPE_VLAN, > .size = sizeof(VLANClientState*), > .parse = parse_vlan, > .print = print_vlan, > + .get = get_vlan, > + .set = set_vlan, > }; > > /* --- pointer --- */ > @@ -531,6 +860,8 @@ PropertyInfo qdev_prop_macaddr = { > .size = sizeof(MACAddr), > .parse = parse_mac, > .print = print_mac, > + .get = get_generic, > + .set = set_generic, > }; > > PropertyInfo qdev_prop_pci_devfn = { > .name = "pci-devfn", > .type = PROP_TYPE_UINT32, > .size = sizeof(uint32_t), > .parse = parse_pci_devfn, > .print = print_pci_devfn, > + .get = get_pci_devfn, > + .set = set_generic, > }; I think we should not touch these. First it doesn't buy us much as we are using the old parse/print functions for the visitor-based access, which doesn't look like a good idea to me. Also they will not stay but will be converted to child<> and link<>, so I think it is better to keep the old stuff in the legacy<> namespace. Agree on the bit/bool/int types. Although we maybe should apply some care to integer bus properties, some of them are used for addressing and will most likely replaced by child<> and link<> too. cheers, Gerd