This helper is cleaner than plain memcpy() because one doesn't
have to look into virPCIDeviceAddress struct to see if it
contains any strings / pointers.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/libvirt_private.syms | 1 +
src/util/virpci.c | 6 ++++++
src/util/virpci.h | 2 ++
3 files changed, 9 insertions(+)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 02d5b7acce..6cef8d20fe 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2612,6 +2612,7 @@ virObjectUnref;
# util/virpci.h
virPCIDeviceAddressAsString;
+virPCIDeviceAddressCopy;
virPCIDeviceAddressEqual;
virPCIDeviceAddressGetIOMMUGroupAddresses;
virPCIDeviceAddressGetIOMMUGroupNum;
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 59f478dd41..03ce651f40 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -1730,6 +1730,12 @@ virPCIDeviceAddressEqual(const virPCIDeviceAddress *addr1,
return false;
}
+void virPCIDeviceAddressCopy(virPCIDeviceAddressPtr dst,
+ const virPCIDeviceAddress *src)
+{
+ memcpy(dst, src, sizeof(*src));
+}
+
char *
virPCIDeviceAddressAsString(const virPCIDeviceAddress *addr)
{
diff --git a/src/util/virpci.h b/src/util/virpci.h
index 1efd8b77ed..72e90a1ef3 100644
--- a/src/util/virpci.h
+++ b/src/util/virpci.h
@@ -233,6 +233,8 @@ bool virPCIDeviceAddressIsEmpty(const virPCIDeviceAddress *addr);
bool virPCIDeviceAddressEqual(const virPCIDeviceAddress *addr1,
const virPCIDeviceAddress *addr2);
+void virPCIDeviceAddressCopy(virPCIDeviceAddressPtr dst,
+ const virPCIDeviceAddress *src);
char *virPCIDeviceAddressAsString(const virPCIDeviceAddress *addr)
ATTRIBUTE_NONNULL(1);
--
2.21.0