提交 11c47d97 编写于 作者: L Laine Stump

conf: virDomainDeviceInfoCopy utility function

This does a shallow copy of all the bits, then strdups the two items
that are actually allocated separately.
上级 31094559
...@@ -2011,6 +2011,30 @@ virDomainDeviceInfoIsSet(virDomainDeviceInfoPtr info, unsigned int flags) ...@@ -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, ...@@ -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; ...@@ -328,6 +328,7 @@ virDomainDeviceAddressTypeToString;
virDomainDeviceDefCopy; virDomainDeviceDefCopy;
virDomainDeviceDefFree; virDomainDeviceDefFree;
virDomainDeviceDefParse; virDomainDeviceDefParse;
virDomainDeviceInfoCopy;
virDomainDeviceInfoIterate; virDomainDeviceInfoIterate;
virDomainDeviceTypeToString; virDomainDeviceTypeToString;
virDomainDiskBusTypeToString; virDomainDiskBusTypeToString;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册