This does a shallow copy of all the bits, then strdups the two items
that are actually allocated separately.
return false;
}
+int
+virDomainDeviceInfoCopy(virDomainDeviceInfoPtr dst,
+ virDomainDeviceInfoPtr src)
+{
+ /* Assume that dst is already cleared */
+
+ /* first a shallow copy of *everything* */
+ *dst = *src;
+
+ /* then redo the two fields that are pointers */
+ dst->alias = NULL;
+ dst->romfile = NULL;
+
+ if (src->alias && !(dst->alias = strdup(src->alias))) {
+ virReportOOMError();
+ return -1;
+ }
+ if (src->romfile && !(dst->romfile = strdup(src->romfile))) {
+ virReportOOMError();
+ return -1;
+ }
+ return 0;
+}
+
void virDomainDeviceInfoClear(virDomainDeviceInfoPtr info)
{
VIR_FREE(info->alias);
virDomainDeviceDefPtr src);
int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info,
int type);
+int virDomainDeviceInfoCopy(virDomainDeviceInfoPtr dst,
+ virDomainDeviceInfoPtr src);
void virDomainDeviceInfoClear(virDomainDeviceInfoPtr info);
void virDomainDefClearPCIAddresses(virDomainDefPtr def);
void virDomainDefClearDeviceAliases(virDomainDefPtr def);
virDomainDeviceDefCopy;
virDomainDeviceDefFree;
virDomainDeviceDefParse;
+virDomainDeviceInfoCopy;
virDomainDeviceInfoIterate;
virDomainDeviceTypeToString;
virDomainDiskBusTypeToString;