|
|
2cf05b |
From 531244b8147f8972e56b6ba2c7ecf04c072f296a Mon Sep 17 00:00:00 2001
|
|
|
2cf05b |
Message-Id: <531244b8147f8972e56b6ba2c7ecf04c072f296a@dist-git>
|
|
|
2cf05b |
From: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
|
|
2cf05b |
Date: Fri, 13 May 2022 12:31:02 +0200
|
|
|
2cf05b |
Subject: [PATCH] util: refactor virDomainCCWAddressAsString into virccw
|
|
|
2cf05b |
|
|
|
2cf05b |
Move virDomainCCWAddressAsString into virccw and rename method as
|
|
|
2cf05b |
virCCWDeviceAddressAsString.
|
|
|
2cf05b |
|
|
|
2cf05b |
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
|
|
|
2cf05b |
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
2cf05b |
(cherry picked from commit 1df0a1986978dcb7d1fc139f14adbc4f85b1851f)
|
|
|
2cf05b |
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2165011
|
|
|
2cf05b |
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|
|
2cf05b |
---
|
|
|
2cf05b |
src/conf/domain_addr.c | 12 +++---------
|
|
|
2cf05b |
src/conf/domain_addr.h | 3 ---
|
|
|
2cf05b |
src/conf/domain_conf.c | 2 +-
|
|
|
2cf05b |
src/libvirt_private.syms | 5 ++++-
|
|
|
2cf05b |
src/node_device/node_device_driver.c | 2 +-
|
|
|
2cf05b |
src/util/meson.build | 1 +
|
|
|
2cf05b |
src/util/virccw.c | 29 ++++++++++++++++++++++++++++
|
|
|
2cf05b |
src/util/virccw.h | 3 +++
|
|
|
2cf05b |
8 files changed, 42 insertions(+), 15 deletions(-)
|
|
|
2cf05b |
create mode 100644 src/util/virccw.c
|
|
|
2cf05b |
|
|
|
2cf05b |
diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c
|
|
|
2cf05b |
index d584d3b8a8..bf51ef5e5a 100644
|
|
|
2cf05b |
--- a/src/conf/domain_addr.c
|
|
|
2cf05b |
+++ b/src/conf/domain_addr.c
|
|
|
2cf05b |
@@ -1286,12 +1286,6 @@ virDomainPCIAddressSetAllMulti(virDomainDef *def)
|
|
|
2cf05b |
}
|
|
|
2cf05b |
|
|
|
2cf05b |
|
|
|
2cf05b |
-char*
|
|
|
2cf05b |
-virDomainCCWAddressAsString(virCCWDeviceAddress *addr)
|
|
|
2cf05b |
-{
|
|
|
2cf05b |
- return g_strdup_printf("%x.%x.%04x", addr->cssid, addr->ssid, addr->devno);
|
|
|
2cf05b |
-}
|
|
|
2cf05b |
-
|
|
|
2cf05b |
static int
|
|
|
2cf05b |
virDomainCCWAddressIncrement(virCCWDeviceAddress *addr)
|
|
|
2cf05b |
{
|
|
|
2cf05b |
@@ -1317,7 +1311,7 @@ virDomainCCWAddressAssign(virDomainDeviceInfo *dev,
|
|
|
2cf05b |
return 0;
|
|
|
2cf05b |
|
|
|
2cf05b |
if (!autoassign && dev->addr.ccw.assigned) {
|
|
|
2cf05b |
- if (!(addr = virDomainCCWAddressAsString(&dev->addr.ccw)))
|
|
|
2cf05b |
+ if (!(addr = virCCWDeviceAddressAsString(&dev->addr.ccw)))
|
|
|
2cf05b |
return -1;
|
|
|
2cf05b |
|
|
|
2cf05b |
if (virHashLookup(addrs->defined, addr)) {
|
|
|
2cf05b |
@@ -1327,7 +1321,7 @@ virDomainCCWAddressAssign(virDomainDeviceInfo *dev,
|
|
|
2cf05b |
return -1;
|
|
|
2cf05b |
}
|
|
|
2cf05b |
} else if (autoassign && !dev->addr.ccw.assigned) {
|
|
|
2cf05b |
- if (!(addr = virDomainCCWAddressAsString(&addrs->next)))
|
|
|
2cf05b |
+ if (!(addr = virCCWDeviceAddressAsString(&addrs->next)))
|
|
|
2cf05b |
return -1;
|
|
|
2cf05b |
|
|
|
2cf05b |
while (virHashLookup(addrs->defined, addr)) {
|
|
|
2cf05b |
@@ -1337,7 +1331,7 @@ virDomainCCWAddressAssign(virDomainDeviceInfo *dev,
|
|
|
2cf05b |
return -1;
|
|
|
2cf05b |
}
|
|
|
2cf05b |
VIR_FREE(addr);
|
|
|
2cf05b |
- if (!(addr = virDomainCCWAddressAsString(&addrs->next)))
|
|
|
2cf05b |
+ if (!(addr = virCCWDeviceAddressAsString(&addrs->next)))
|
|
|
2cf05b |
return -1;
|
|
|
2cf05b |
}
|
|
|
2cf05b |
dev->addr.ccw = addrs->next;
|
|
|
2cf05b |
diff --git a/src/conf/domain_addr.h b/src/conf/domain_addr.h
|
|
|
2cf05b |
index c8d069e07e..a67851c327 100644
|
|
|
2cf05b |
--- a/src/conf/domain_addr.h
|
|
|
2cf05b |
+++ b/src/conf/domain_addr.h
|
|
|
2cf05b |
@@ -205,9 +205,6 @@ int virDomainCCWAddressAssign(virDomainDeviceInfo *dev,
|
|
|
2cf05b |
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
|
|
2cf05b |
void virDomainCCWAddressSetFree(virDomainCCWAddressSet *addrs);
|
|
|
2cf05b |
|
|
|
2cf05b |
-char* virDomainCCWAddressAsString(virCCWDeviceAddress *addr)
|
|
|
2cf05b |
- ATTRIBUTE_NONNULL(1);
|
|
|
2cf05b |
-
|
|
|
2cf05b |
virDomainCCWAddressSet *
|
|
|
2cf05b |
virDomainCCWAddressSetCreateFromDomain(virDomainDef *def)
|
|
|
2cf05b |
ATTRIBUTE_NONNULL(1);
|
|
|
2cf05b |
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
|
|
|
2cf05b |
index ad3bd56da0..17383fc878 100644
|
|
|
2cf05b |
--- a/src/conf/domain_conf.c
|
|
|
2cf05b |
+++ b/src/conf/domain_conf.c
|
|
|
2cf05b |
@@ -15793,7 +15793,7 @@ virDomainNetFindIdx(virDomainDef *def, virDomainNetDef *net)
|
|
|
2cf05b |
alias = net->info.alias;
|
|
|
2cf05b |
|
|
|
2cf05b |
if (CCWAddrSpecified)
|
|
|
2cf05b |
- addr = virDomainCCWAddressAsString(&net->info.addr.ccw);
|
|
|
2cf05b |
+ addr = virCCWDeviceAddressAsString(&net->info.addr.ccw);
|
|
|
2cf05b |
else if (PCIAddrSpecified)
|
|
|
2cf05b |
addr = virPCIDeviceAddressAsString(&net->info.addr.pci);
|
|
|
2cf05b |
else
|
|
|
2cf05b |
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
|
|
|
2cf05b |
index 568b0f34a1..e8d3edb0fe 100644
|
|
|
2cf05b |
--- a/src/libvirt_private.syms
|
|
|
2cf05b |
+++ b/src/libvirt_private.syms
|
|
|
2cf05b |
@@ -147,7 +147,6 @@ virPCIDeviceAddressParseXML;
|
|
|
2cf05b |
|
|
|
2cf05b |
# conf/domain_addr.h
|
|
|
2cf05b |
virDomainCCWAddressAssign;
|
|
|
2cf05b |
-virDomainCCWAddressAsString;
|
|
|
2cf05b |
virDomainCCWAddressSetCreateFromDomain;
|
|
|
2cf05b |
virDomainCCWAddressSetFree;
|
|
|
2cf05b |
virDomainPCIAddressBusIsFullyReserved;
|
|
|
2cf05b |
@@ -1902,6 +1901,10 @@ virBufferUse;
|
|
|
2cf05b |
virBufferVasprintf;
|
|
|
2cf05b |
|
|
|
2cf05b |
|
|
|
2cf05b |
+# util/virccw.h
|
|
|
2cf05b |
+virCCWDeviceAddressAsString;
|
|
|
2cf05b |
+
|
|
|
2cf05b |
+
|
|
|
2cf05b |
# util/vircgroup.h
|
|
|
2cf05b |
virCgroupAddMachineProcess;
|
|
|
2cf05b |
virCgroupAddProcess;
|
|
|
2cf05b |
diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
|
|
|
2cf05b |
index b0abf59618..e6ab4bb94c 100644
|
|
|
2cf05b |
--- a/src/node_device/node_device_driver.c
|
|
|
2cf05b |
+++ b/src/node_device/node_device_driver.c
|
|
|
2cf05b |
@@ -682,7 +682,7 @@ nodeDeviceObjFormatAddress(virNodeDeviceObj *obj)
|
|
|
2cf05b |
.devno = caps->data.ccw_dev.devno
|
|
|
2cf05b |
};
|
|
|
2cf05b |
|
|
|
2cf05b |
- addr = virDomainCCWAddressAsString(&ccw_addr);
|
|
|
2cf05b |
+ addr = virCCWDeviceAddressAsString(&ccw_addr);
|
|
|
2cf05b |
break;
|
|
|
2cf05b |
}
|
|
|
2cf05b |
|
|
|
2cf05b |
diff --git a/src/util/meson.build b/src/util/meson.build
|
|
|
2cf05b |
index 24350a3e67..13ed105798 100644
|
|
|
2cf05b |
--- a/src/util/meson.build
|
|
|
2cf05b |
+++ b/src/util/meson.build
|
|
|
2cf05b |
@@ -9,6 +9,7 @@ util_sources = [
|
|
|
2cf05b |
'virbitmap.c',
|
|
|
2cf05b |
'virbpf.c',
|
|
|
2cf05b |
'virbuffer.c',
|
|
|
2cf05b |
+ 'virccw.c',
|
|
|
2cf05b |
'vircgroup.c',
|
|
|
2cf05b |
'vircgroupbackend.c',
|
|
|
2cf05b |
'vircgroupv1.c',
|
|
|
2cf05b |
diff --git a/src/util/virccw.c b/src/util/virccw.c
|
|
|
2cf05b |
new file mode 100644
|
|
|
2cf05b |
index 0000000000..409287b380
|
|
|
2cf05b |
--- /dev/null
|
|
|
2cf05b |
+++ b/src/util/virccw.c
|
|
|
2cf05b |
@@ -0,0 +1,29 @@
|
|
|
2cf05b |
+/*
|
|
|
2cf05b |
+ * virccw.c: helper APIs for managing host CCW devices
|
|
|
2cf05b |
+ *
|
|
|
2cf05b |
+ * Copyright (C) 2022 IBM Corporation
|
|
|
2cf05b |
+ *
|
|
|
2cf05b |
+ * This library is free software; you can redistribute it and/or
|
|
|
2cf05b |
+ * modify it under the terms of the GNU Lesser General Public
|
|
|
2cf05b |
+ * License as published by the Free Software Foundation; either
|
|
|
2cf05b |
+ * version 2.1 of the License, or (at your option) any later version.
|
|
|
2cf05b |
+ *
|
|
|
2cf05b |
+ * This library is distributed in the hope that it will be useful,
|
|
|
2cf05b |
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
2cf05b |
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
2cf05b |
+ * Lesser General Public License for more details.
|
|
|
2cf05b |
+ *
|
|
|
2cf05b |
+ * You should have received a copy of the GNU Lesser General Public
|
|
|
2cf05b |
+ * License along with this library. If not, see
|
|
|
2cf05b |
+ * <http://www.gnu.org/licenses/>.
|
|
|
2cf05b |
+ */
|
|
|
2cf05b |
+
|
|
|
2cf05b |
+#include <config.h>
|
|
|
2cf05b |
+#include "virccw.h"
|
|
|
2cf05b |
+
|
|
|
2cf05b |
+
|
|
|
2cf05b |
+char*
|
|
|
2cf05b |
+virCCWDeviceAddressAsString(virCCWDeviceAddress *addr)
|
|
|
2cf05b |
+{
|
|
|
2cf05b |
+ return g_strdup_printf("%x.%x.%04x", addr->cssid, addr->ssid, addr->devno);
|
|
|
2cf05b |
+}
|
|
|
2cf05b |
diff --git a/src/util/virccw.h b/src/util/virccw.h
|
|
|
2cf05b |
index 701e13284b..21a03406fa 100644
|
|
|
2cf05b |
--- a/src/util/virccw.h
|
|
|
2cf05b |
+++ b/src/util/virccw.h
|
|
|
2cf05b |
@@ -29,3 +29,6 @@ struct _virCCWDeviceAddress {
|
|
|
2cf05b |
unsigned int devno;
|
|
|
2cf05b |
bool assigned;
|
|
|
2cf05b |
};
|
|
|
2cf05b |
+
|
|
|
2cf05b |
+char* virCCWDeviceAddressAsString(virCCWDeviceAddress *addr)
|
|
|
2cf05b |
+ ATTRIBUTE_NONNULL(1);
|
|
|
2cf05b |
--
|
|
|
2cf05b |
2.39.1
|
|
|
2cf05b |
|