From nobody Sun Feb 8 14:53:46 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=linux.ibm.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1652437901613619.6136056775822; Fri, 13 May 2022 03:31:41 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-288-hNSQ90IPPjGvAiMJKYTrsw-1; Fri, 13 May 2022 06:31:39 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9F83D86B8C2; Fri, 13 May 2022 10:31:34 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8808F438BF2; Fri, 13 May 2022 10:31:34 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 6553A192B8D8; Fri, 13 May 2022 10:31:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id D86C7193222E for ; Fri, 13 May 2022 10:31:30 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id C4206C53361; Fri, 13 May 2022 10:31:30 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BEA94C53360 for ; Fri, 13 May 2022 10:31:30 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A3535811E78 for ; Fri, 13 May 2022 10:31:30 +0000 (UTC) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-425-t867URpLNlSm6RYKlZ0QoQ-1; Fri, 13 May 2022 06:31:28 -0400 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 24D9puFQ021203 for ; Fri, 13 May 2022 10:31:27 GMT Received: from ppma01fra.de.ibm.com (46.49.7a9f.ip4.static.sl-reverse.com [159.122.73.70]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3g1n2u0qab-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 13 May 2022 10:31:27 +0000 Received: from pps.filterd (ppma01fra.de.ibm.com [127.0.0.1]) by ppma01fra.de.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 24DAOUBv010740 for ; Fri, 13 May 2022 10:31:25 GMT Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by ppma01fra.de.ibm.com with ESMTP id 3fwgd8pkwg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 13 May 2022 10:31:25 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 24DAVL9558392938 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 13 May 2022 10:31:22 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DAD6011C04C; Fri, 13 May 2022 10:31:21 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AC2F111C05B; Fri, 13 May 2022 10:31:21 +0000 (GMT) Received: from localhost.localdomain (unknown [9.145.93.141]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP; Fri, 13 May 2022 10:31:21 +0000 (GMT) X-MC-Unique: hNSQ90IPPjGvAiMJKYTrsw-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: t867URpLNlSm6RYKlZ0QoQ-1 From: Boris Fiuczynski To: libvir-list@redhat.com Subject: [PATCH 02/17] util: refactor virDomainDeviceCCWAddress into virccw.h Date: Fri, 13 May 2022 12:31:01 +0200 Message-Id: <20220513103116.3751-3-fiuczy@linux.ibm.com> In-Reply-To: <20220513103116.3751-1-fiuczy@linux.ibm.com> References: <20220513103116.3751-1-fiuczy@linux.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-GUID: p2p9CULN8oSqmrxvVK_vKAT9oTbWD2oO X-Proofpoint-ORIG-GUID: p2p9CULN8oSqmrxvVK_vKAT9oTbWD2oO X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.858,Hydra:6.0.486,FMLib:17.11.64.514 definitions=2022-05-13_04,2022-05-12_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 adultscore=0 spamscore=0 clxscore=1015 impostorscore=0 suspectscore=0 priorityscore=1501 mlxlogscore=995 mlxscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205130046 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.85 on 10.11.54.8 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Boris Fiuczynski Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.9 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1652437903047100002 Content-Type: text/plain; charset="utf-8"; x-default="true" Refactor ccw data structure virDomainDeviceCCWAddress into util virccw.h and rename it as virCCWDeviceAddress. Signed-off-by: Boris Fiuczynski --- src/conf/device_conf.c | 8 +++---- src/conf/device_conf.h | 19 ++++++----------- src/conf/domain_addr.c | 6 +++--- src/conf/domain_addr.h | 4 ++-- src/conf/domain_conf.c | 6 +++--- src/conf/domain_conf.h | 6 +++--- src/node_device/node_device_driver.c | 2 +- src/qemu/qemu_agent.c | 4 ++-- src/qemu/qemu_agent.h | 2 +- src/util/virccw.h | 31 ++++++++++++++++++++++++++++ 10 files changed, 56 insertions(+), 32 deletions(-) create mode 100644 src/util/virccw.h diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index cb523d3a0d..92b908b2e6 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -259,7 +259,7 @@ virPCIDeviceAddressFormat(virBuffer *buf, } =20 bool -virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddress *addr) +virDomainDeviceCCWAddressIsValid(virCCWDeviceAddress *addr) { return addr->cssid <=3D VIR_DOMAIN_DEVICE_CCW_MAX_CSSID && addr->ssid <=3D VIR_DOMAIN_DEVICE_CCW_MAX_SSID && @@ -268,7 +268,7 @@ virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddr= ess *addr) =20 int virDomainDeviceCCWAddressParseXML(xmlNodePtr node, - virDomainDeviceCCWAddress *addr) + virCCWDeviceAddress *addr) { int cssid; int ssid; @@ -307,8 +307,8 @@ virDomainDeviceCCWAddressParseXML(xmlNodePtr node, } =20 bool -virDomainDeviceCCWAddressEqual(virDomainDeviceCCWAddress *addr1, - virDomainDeviceCCWAddress *addr2) +virDomainDeviceCCWAddressEqual(virCCWDeviceAddress *addr1, + virCCWDeviceAddress *addr2) { if (addr1->cssid =3D=3D addr2->cssid && addr1->ssid =3D=3D addr2->ssid && diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index b6b710d313..60d90bbf19 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -27,6 +27,7 @@ #include "internal.h" #include "virthread.h" #include "virbuffer.h" +#include "virccw.h" #include "virpci.h" #include "virnetdev.h" #include "virenum.h" @@ -73,14 +74,6 @@ struct _virDomainDeviceVirtioSerialAddress { #define VIR_DOMAIN_DEVICE_CCW_MAX_SSID 3 #define VIR_DOMAIN_DEVICE_CCW_MAX_DEVNO 65535 =20 -typedef struct _virDomainDeviceCCWAddress virDomainDeviceCCWAddress; -struct _virDomainDeviceCCWAddress { - unsigned int cssid; - unsigned int ssid; - unsigned int devno; - bool assigned; -}; - typedef struct _virDomainDeviceCcidAddress virDomainDeviceCcidAddress; struct _virDomainDeviceCcidAddress { unsigned int controller; @@ -136,7 +129,7 @@ struct _virDomainDeviceInfo { virDomainDeviceCcidAddress ccid; virDomainDeviceUSBAddress usb; virDomainDeviceSpaprVioAddress spaprvio; - virDomainDeviceCCWAddress ccw; + virCCWDeviceAddress ccw; virDomainDeviceISAAddress isa; virDomainDeviceDimmAddress dimm; } addr; @@ -204,11 +197,11 @@ void virPCIDeviceAddressFormat(virBuffer *buf, virPCIDeviceAddress addr, bool includeTypeInAddr); =20 -bool virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddress *addr); +bool virDomainDeviceCCWAddressIsValid(virCCWDeviceAddress *addr); int virDomainDeviceCCWAddressParseXML(xmlNodePtr node, - virDomainDeviceCCWAddress *addr); -bool virDomainDeviceCCWAddressEqual(virDomainDeviceCCWAddress *addr1, - virDomainDeviceCCWAddress *addr2); + virCCWDeviceAddress *addr); +bool virDomainDeviceCCWAddressEqual(virCCWDeviceAddress *addr1, + virCCWDeviceAddress *addr2); #define VIR_CCW_DEVICE_ADDRESS_FMT "%x.%x.%04x" =20 int virDomainDeviceDriveAddressParseXML(xmlNodePtr node, diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c index 1173143635..e51056b0a9 100644 --- a/src/conf/domain_addr.c +++ b/src/conf/domain_addr.c @@ -1304,15 +1304,15 @@ virDomainPCIAddressSetAllMulti(virDomainDef *def) =20 =20 char* -virDomainCCWAddressAsString(virDomainDeviceCCWAddress *addr) +virDomainCCWAddressAsString(virCCWDeviceAddress *addr) { return g_strdup_printf("%x.%x.%04x", addr->cssid, addr->ssid, addr->de= vno); } =20 static int -virDomainCCWAddressIncrement(virDomainDeviceCCWAddress *addr) +virDomainCCWAddressIncrement(virCCWDeviceAddress *addr) { - virDomainDeviceCCWAddress ccwaddr =3D *addr; + virCCWDeviceAddress ccwaddr =3D *addr; =20 /* We are not touching subchannel sets and channel subsystems */ if (++ccwaddr.devno > VIR_DOMAIN_DEVICE_CCW_MAX_DEVNO) diff --git a/src/conf/domain_addr.h b/src/conf/domain_addr.h index 1772ea7088..8a6e80a84d 100644 --- a/src/conf/domain_addr.h +++ b/src/conf/domain_addr.h @@ -199,7 +199,7 @@ void virDomainPCIAddressSetAllMulti(virDomainDef *def) =20 struct _virDomainCCWAddressSet { GHashTable *defined; - virDomainDeviceCCWAddress next; + virCCWDeviceAddress next; }; typedef struct _virDomainCCWAddressSet virDomainCCWAddressSet; =20 @@ -209,7 +209,7 @@ int virDomainCCWAddressAssign(virDomainDeviceInfo *dev, ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); void virDomainCCWAddressSetFree(virDomainCCWAddressSet *addrs); =20 -char* virDomainCCWAddressAsString(virDomainDeviceCCWAddress *addr) +char* virDomainCCWAddressAsString(virCCWDeviceAddress *addr) ATTRIBUTE_NONNULL(1); =20 virDomainCCWAddressSet * diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index bd2884088c..7ef65ebed5 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -15368,7 +15368,7 @@ virDomainDiskControllerMatch(int controller_type, i= nt disk_bus) int virDomainDiskIndexByAddress(virDomainDef *def, virPCIDeviceAddress *pci_address, - virDomainDeviceCCWAddress *ccw_addr, + virCCWDeviceAddress *ccw_addr, unsigned int bus, unsigned int target, unsigned int unit) { @@ -15412,7 +15412,7 @@ virDomainDiskIndexByAddress(virDomainDef *def, virDomainDiskDef * virDomainDiskByAddress(virDomainDef *def, virPCIDeviceAddress *pci_address, - virDomainDeviceCCWAddress *ccw_addr, + virCCWDeviceAddress *ccw_addr, unsigned int bus, unsigned int target, unsigned int unit) @@ -16011,7 +16011,7 @@ virDomainControllerFindByType(virDomainDef *def, =20 int virDomainControllerFindByCCWAddress(virDomainDef *def, - virDomainDeviceCCWAddress *addr) + virCCWDeviceAddress *addr) { size_t i; =20 diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 88a411d00c..5f782a7bf9 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3655,12 +3655,12 @@ void virDomainRNGDefFree(virDomainRNGDef *def); =20 int virDomainDiskIndexByAddress(virDomainDef *def, virPCIDeviceAddress *pci_controller, - virDomainDeviceCCWAddress *ccw_addr, + virCCWDeviceAddress *ccw_addr, unsigned int bus, unsigned int target, unsigned int unit); virDomainDiskDef *virDomainDiskByAddress(virDomainDef *def, virPCIDeviceAddress *pci_controll= er, - virDomainDeviceCCWAddress *ccw_ad= dr, + virCCWDeviceAddress *ccw_addr, unsigned int bus, unsigned int target, unsigned int unit); @@ -3745,7 +3745,7 @@ void virDomainControllerInsertPreAlloced(virDomainDef= *def, int virDomainControllerFind(const virDomainDef *def, int type, int idx); int virDomainControllerFindByType(virDomainDef *def, int type); int virDomainControllerFindByCCWAddress(virDomainDef *def, - virDomainDeviceCCWAddress *addr); + virCCWDeviceAddress *addr); int virDomainControllerFindByPCIAddress(virDomainDef *def, virPCIDeviceAddress *addr); int virDomainControllerFindUnusedIndex(virDomainDef const *def, int type); diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_de= vice_driver.c index 1eb452b989..b9c46376f5 100644 --- a/src/node_device/node_device_driver.c +++ b/src/node_device/node_device_driver.c @@ -661,7 +661,7 @@ nodeDeviceObjFormatAddress(virNodeDeviceObj *obj) } =20 case VIR_NODE_DEV_CAP_CSS_DEV: { - virDomainDeviceCCWAddress ccw_addr =3D { + virCCWDeviceAddress ccw_addr =3D { .cssid =3D caps->data.ccw_dev.cssid, .ssid =3D caps->data.ccw_dev.ssid, .devno =3D caps->data.ccw_dev.devno diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c index 4156cb0dca..f57a8d5f25 100644 --- a/src/qemu/qemu_agent.c +++ b/src/qemu/qemu_agent.c @@ -1764,9 +1764,9 @@ qemuAgentGetDiskAddress(virJSONValue *json) GET_DISK_ADDR(pci, &addr->pci_controller.function, "function"); =20 if ((ccw =3D virJSONValueObjectGet(json, "ccw-address"))) { - g_autofree virDomainDeviceCCWAddress *ccw_addr =3D NULL; + g_autofree virCCWDeviceAddress *ccw_addr =3D NULL; =20 - ccw_addr =3D g_new0(virDomainDeviceCCWAddress, 1); + ccw_addr =3D g_new0(virCCWDeviceAddress, 1); =20 GET_DISK_ADDR(ccw, &ccw_addr->cssid, "cssid"); if (ccw_addr->cssid =3D=3D 0) /* Guest CSSID 0 is 0xfe on host */ diff --git a/src/qemu/qemu_agent.h b/src/qemu/qemu_agent.h index 862f6b0a95..c07d8507ba 100644 --- a/src/qemu/qemu_agent.h +++ b/src/qemu/qemu_agent.h @@ -72,7 +72,7 @@ struct _qemuAgentDiskAddress { unsigned int target; unsigned int unit; char *devnode; - virDomainDeviceCCWAddress *ccw_addr; + virCCWDeviceAddress *ccw_addr; }; void qemuAgentDiskAddressFree(qemuAgentDiskAddress *addr); G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuAgentDiskAddress, qemuAgentDiskAddressFr= ee); diff --git a/src/util/virccw.h b/src/util/virccw.h new file mode 100644 index 0000000000..701e13284b --- /dev/null +++ b/src/util/virccw.h @@ -0,0 +1,31 @@ +/* + * virccw.h: helper APIs for managing host CCW devices + * + * Copyright (C) 2022 IBM Corporation + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see + * . + */ + +#pragma once + +#include "internal.h" + +typedef struct _virCCWDeviceAddress virCCWDeviceAddress; +struct _virCCWDeviceAddress { + unsigned int cssid; + unsigned int ssid; + unsigned int devno; + bool assigned; +}; --=20 2.33.1