From 3d85a14b3487f97f31568d828aee37a58ef2ebf5 Mon Sep 17 00:00:00 2001 From: Tim Wiederhake Date: Thu, 7 Oct 2021 13:56:53 +0200 Subject: [PATCH] cpu_x86: Implement virCPUDataNewCopy for x86 Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/cpu/cpu_x86.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 02766ca979..d2e299863f 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -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,