cpu: Add virCPUDataNewCopy

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Tim Wiederhake 2021-10-07 13:46:44 +02:00
parent 25890756ec
commit a9da679bb4
3 changed files with 29 additions and 0 deletions

View File

@ -294,6 +294,27 @@ virCPUDataNew(virArch arch)
} }
/**
* virCPUDataNewCopy:
*
* Returns a copy of @data or NULL on error.
*/
virCPUData *
virCPUDataNewCopy(virCPUData *data)
{
struct cpuArchDriver *driver;
VIR_DEBUG("data=%p", data);
if (!data)
return NULL;
if ((driver = cpuGetSubDriver(data->arch)) && driver->dataCopyNew)
return driver->dataCopyNew(data);
return NULL;
}
/** /**
* virCPUDataFree: * virCPUDataFree:
* *

View File

@ -62,6 +62,9 @@ typedef int
virCPUData **forbidden, virCPUData **forbidden,
virCPUData **vendor); virCPUData **vendor);
typedef virCPUData *
(*cpuArchDataCopyNew)(virCPUData *data);
typedef void typedef void
(*cpuArchDataFree) (virCPUData *data); (*cpuArchDataFree) (virCPUData *data);
@ -134,6 +137,7 @@ struct cpuArchDriver {
virCPUArchCompare compare; virCPUArchCompare compare;
cpuArchDecode decode; cpuArchDecode decode;
cpuArchEncode encode; cpuArchEncode encode;
cpuArchDataCopyNew dataCopyNew;
cpuArchDataFree dataFree; cpuArchDataFree dataFree;
virCPUArchGetHost getHost; virCPUArchGetHost getHost;
virCPUArchBaseline baseline; virCPUArchBaseline baseline;
@ -188,6 +192,9 @@ cpuEncode (virArch arch,
virCPUData * virCPUData *
virCPUDataNew(virArch arch); virCPUDataNew(virArch arch);
virCPUData *
virCPUDataNewCopy(virCPUData *data);
void void
virCPUDataFree(virCPUData *data); virCPUDataFree(virCPUData *data);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virCPUData, virCPUDataFree); G_DEFINE_AUTOPTR_CLEANUP_FUNC(virCPUData, virCPUDataFree);

View File

@ -1464,6 +1464,7 @@ virCPUDataFormat;
virCPUDataFree; virCPUDataFree;
virCPUDataIsIdentical; virCPUDataIsIdentical;
virCPUDataNew; virCPUDataNew;
virCPUDataNewCopy;
virCPUDataParse; virCPUDataParse;
virCPUDataParseNode; virCPUDataParseNode;
virCPUExpandFeatures; virCPUExpandFeatures;