mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-04-26 15:14:42 +00:00
conf: virDomainDeviceInfoCopy utility function
This does a shallow copy of all the bits, then strdups the two items that are actually allocated separately.
This commit is contained in:
parent
310945597c
commit
11c47d979c
@ -2011,6 +2011,30 @@ virDomainDeviceInfoIsSet(virDomainDeviceInfoPtr info, unsigned int flags)
|
|||||||
return false;
|
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)
|
void virDomainDeviceInfoClear(virDomainDeviceInfoPtr info)
|
||||||
{
|
{
|
||||||
VIR_FREE(info->alias);
|
VIR_FREE(info->alias);
|
||||||
|
@ -1891,6 +1891,8 @@ virDomainDeviceDefPtr virDomainDeviceDefCopy(virCapsPtr caps,
|
|||||||
virDomainDeviceDefPtr src);
|
virDomainDeviceDefPtr src);
|
||||||
int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info,
|
int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info,
|
||||||
int type);
|
int type);
|
||||||
|
int virDomainDeviceInfoCopy(virDomainDeviceInfoPtr dst,
|
||||||
|
virDomainDeviceInfoPtr src);
|
||||||
void virDomainDeviceInfoClear(virDomainDeviceInfoPtr info);
|
void virDomainDeviceInfoClear(virDomainDeviceInfoPtr info);
|
||||||
void virDomainDefClearPCIAddresses(virDomainDefPtr def);
|
void virDomainDefClearPCIAddresses(virDomainDefPtr def);
|
||||||
void virDomainDefClearDeviceAliases(virDomainDefPtr def);
|
void virDomainDefClearDeviceAliases(virDomainDefPtr def);
|
||||||
|
@ -328,6 +328,7 @@ virDomainDeviceAddressTypeToString;
|
|||||||
virDomainDeviceDefCopy;
|
virDomainDeviceDefCopy;
|
||||||
virDomainDeviceDefFree;
|
virDomainDeviceDefFree;
|
||||||
virDomainDeviceDefParse;
|
virDomainDeviceDefParse;
|
||||||
|
virDomainDeviceInfoCopy;
|
||||||
virDomainDeviceInfoIterate;
|
virDomainDeviceInfoIterate;
|
||||||
virDomainDeviceTypeToString;
|
virDomainDeviceTypeToString;
|
||||||
virDomainDiskBusTypeToString;
|
virDomainDiskBusTypeToString;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user