]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
cpu_x86: Implement virCPUDataNewCopy for x86
authorTim Wiederhake <twiederh@redhat.com>
Thu, 7 Oct 2021 11:56:53 +0000 (13:56 +0200)
committerTim Wiederhake <twiederh@redhat.com>
Fri, 5 Nov 2021 16:12:25 +0000 (17:12 +0100)
Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/cpu/cpu_x86.c

index 02766ca97911f04141bde0020e35e1b8e273df88..d2e299863f6cee8942475bb2f104507c8601ebbe 100644 (file)
@@ -481,6 +481,23 @@ virCPUx86DataClear(virCPUx86Data *data)
 G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(virCPUx86Data, virCPUx86DataClear);
 
 
+static virCPUData *
+virCPUx86DataCopyNew(virCPUData *data)
+{
+    virCPUData *copy;
+
+    if (!data)
+        return NULL;
+
+    copy = virCPUDataNew(data->arch);
+    copy->data.x86.len = data->data.x86.len;
+    copy->data.x86.items = g_new0(virCPUx86DataItem, data->data.x86.len);
+    memcpy(copy->data.x86.items, data->data.x86.items,
+           data->data.x86.len * sizeof(*data->data.x86.items));
+
+    return copy;
+}
+
 static void
 virCPUx86DataFree(virCPUData *data)
 {
@@ -3457,6 +3474,7 @@ struct cpuArchDriver cpuDriverX86 = {
     .compare    = virCPUx86Compare,
     .decode     = x86DecodeCPUData,
     .encode     = x86Encode,
+    .dataCopyNew = virCPUx86DataCopyNew,
     .dataFree   = virCPUx86DataFree,
 #if defined(__i386__) || defined(__x86_64__)
     .getHost    = virCPUx86GetHost,