From nobody Sun Apr 28 06:13:09 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1535724068041469.4709045144774; Fri, 31 Aug 2018 07:01:08 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E865B85541; Fri, 31 Aug 2018 14:01:05 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A63B23091330; Fri, 31 Aug 2018 14:01:05 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 32534181A12F; Fri, 31 Aug 2018 14:01:05 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w7VE0s55026620 for ; Fri, 31 Aug 2018 10:00:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1B56839DDC; Fri, 31 Aug 2018 14:00:54 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.43.2.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B14A41C72E for ; Fri, 31 Aug 2018 14:00:53 +0000 (UTC) From: Andrea Bolognani To: libvir-list@redhat.com Date: Fri, 31 Aug 2018 16:00:42 +0200 Message-Id: <20180831140047.3455-2-abologna@redhat.com> In-Reply-To: <20180831140047.3455-1-abologna@redhat.com> References: <20180831140047.3455-1-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/6] conf: Move virDomainDeviceAddressType to device_conf X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.26 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 31 Aug 2018 14:01:06 +0000 (UTC) X-ZohoMail: RDMRC_0 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" It's used in virDomainDeviceInfo, which makes domain_conf the wrong place to declare it. Signed-off-by: Andrea Bolognani Reviewed-by: J=EF=BF=BDn Tomko --- src/conf/device_conf.c | 15 +++++++++++++++ src/conf/device_conf.h | 2 ++ src/conf/domain_conf.c | 14 -------------- src/conf/domain_conf.h | 1 - src/libvirt_private.syms | 2 +- 5 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index 7a8f84e036..dd381f303e 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -32,6 +32,21 @@ =20 #define VIR_FROM_THIS VIR_FROM_DEVICE =20 +VIR_ENUM_IMPL(virDomainDeviceAddress, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST, + "none", + "pci", + "drive", + "virtio-serial", + "ccid", + "usb", + "spapr-vio", + "virtio-s390", + "ccw", + "virtio-mmio", + "isa", + "dimm", +); + int virDomainDeviceInfoCopy(virDomainDeviceInfoPtr dst, virDomainDeviceInfoPtr src) diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index ff7d6c9d5f..66a999760c 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -51,6 +51,8 @@ typedef enum { VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST } virDomainDeviceAddressType; =20 +VIR_ENUM_DECL(virDomainDeviceAddress); + typedef struct _virDomainDeviceDriveAddress virDomainDeviceDriveAddress; typedef virDomainDeviceDriveAddress *virDomainDeviceDriveAddressPtr; struct _virDomainDeviceDriveAddress { diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 38cac07913..2a22978855 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -263,20 +263,6 @@ VIR_ENUM_IMPL(virDomainDevice, VIR_DOMAIN_DEVICE_LAST, "iommu", "vsock") =20 -VIR_ENUM_IMPL(virDomainDeviceAddress, VIR_DOMAIN_DEVICE_ADDRESS_TYPE_LAST, - "none", - "pci", - "drive", - "virtio-serial", - "ccid", - "usb", - "spapr-vio", - "virtio-s390", - "ccw", - "virtio-mmio", - "isa", - "dimm") - VIR_ENUM_IMPL(virDomainDiskDevice, VIR_DOMAIN_DISK_DEVICE_LAST, "disk", "cdrom", diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 8a3673361a..2a827a093f 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3380,7 +3380,6 @@ VIR_ENUM_DECL(virDomainCapsFeature) VIR_ENUM_DECL(virDomainLifecycle) VIR_ENUM_DECL(virDomainLifecycleAction) VIR_ENUM_DECL(virDomainDevice) -VIR_ENUM_DECL(virDomainDeviceAddress) VIR_ENUM_DECL(virDomainDiskDevice) VIR_ENUM_DECL(virDomainDiskGeometryTrans) VIR_ENUM_DECL(virDomainDiskBus) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 954ab4b66c..ae0c26ba99 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -95,6 +95,7 @@ virCPUModeTypeToString; # conf/device_conf.h virDeviceInfoPCIAddressIsPresent; virDeviceInfoPCIAddressIsWanted; +virDomainDeviceAddressTypeToString; virDomainDeviceInfoAddressIsEqual; virDomainDeviceInfoCopy; virInterfaceLinkFormat; @@ -291,7 +292,6 @@ virDomainDefValidate; virDomainDefVcpuOrderClear; virDomainDeleteConfig; virDomainDeviceAddressIsValid; -virDomainDeviceAddressTypeToString; virDomainDeviceAliasIsUserAlias; virDomainDeviceDefCopy; virDomainDeviceDefFree; --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sun Apr 28 06:13:09 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1535724062464962.151548087953; Fri, 31 Aug 2018 07:01:02 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B72DDC059B86; Fri, 31 Aug 2018 14:01:00 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 69E859D3A9; Fri, 31 Aug 2018 14:01:00 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id F1D1F181A12D; Fri, 31 Aug 2018 14:00:59 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w7VE0sL2026625 for ; Fri, 31 Aug 2018 10:00:55 -0400 Received: by smtp.corp.redhat.com (Postfix) id B76BF1C72E; Fri, 31 Aug 2018 14:00:54 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.43.2.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 583EC63F54 for ; Fri, 31 Aug 2018 14:00:54 +0000 (UTC) From: Andrea Bolognani To: libvir-list@redhat.com Date: Fri, 31 Aug 2018 16:00:43 +0200 Message-Id: <20180831140047.3455-3-abologna@redhat.com> In-Reply-To: <20180831140047.3455-1-abologna@redhat.com> References: <20180831140047.3455-1-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 2/6] conf: Move virDomainDeviceAddressIsValid() to device_conf X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Fri, 31 Aug 2018 14:01:01 +0000 (UTC) X-ZohoMail: RDMRC_0 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" The function is called on a virDomainDeviceInfo, so it should be declared along with it. Moving this function requires moving and making public virDomainDeviceCCWAddressIsValid() as well, but that's perfectly fine since the same reasoning above also applies to it, due to virDomainDeviceCCWAddress being (correctly) declared in device_conf. Signed-off-by: Andrea Bolognani Reviewed-by: J=EF=BF=BDn Tomko --- src/conf/device_conf.c | 36 ++++++++++++++++++++++++++++++++++++ src/conf/device_conf.h | 5 +++++ src/conf/domain_conf.c | 36 ------------------------------------ src/conf/domain_conf.h | 2 -- src/libvirt_private.syms | 3 ++- 5 files changed, 43 insertions(+), 39 deletions(-) diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index dd381f303e..1db92aba4a 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -321,6 +321,42 @@ virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, return false; } =20 +int +virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr) +{ + return addr->cssid <=3D VIR_DOMAIN_DEVICE_CCW_MAX_CSSID && + addr->ssid <=3D VIR_DOMAIN_DEVICE_CCW_MAX_SSID && + addr->devno <=3D VIR_DOMAIN_DEVICE_CCW_MAX_DEVNO; +} + +int +virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, + int type) +{ + if (info->type !=3D type) + return 0; + + switch (info->type) { + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: + return virPCIDeviceAddressIsValid(&info->addr.pci, false); + + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE: + return 1; + + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390: + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO: + return 1; + + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW: + return virDomainDeviceCCWAddressIsValid(&info->addr.ccw); + + case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB: + return 1; + } + + return 0; +} + int virInterfaceLinkParseXML(xmlNodePtr node, virNetDevIfLinkPtr lnk) diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index 66a999760c..4a50c3183e 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -188,6 +188,9 @@ bool virDomainDeviceInfoAddressIsEqual(const virDomainD= eviceInfo *a, const virDomainDeviceInfo *b) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK; =20 +int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, + int type); + int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, bool report); bool virPCIDeviceAddressIsEmpty(const virPCIDeviceAddress *addr); @@ -205,6 +208,8 @@ int virPCIDeviceAddressFormat(virBufferPtr buf, bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, virPCIDeviceAddress *addr2); =20 +int virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr); + int virInterfaceLinkParseXML(xmlNodePtr node, virNetDevIfLinkPtr lnk); =20 diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 2a22978855..3cae6b2aeb 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3586,42 +3586,6 @@ virDomainObjGetOneDef(virDomainObjPtr vm, return virDomainObjGetOneDefState(vm, flags, NULL); } =20 - -static int -virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr) -{ - return addr->cssid <=3D VIR_DOMAIN_DEVICE_CCW_MAX_CSSID && - addr->ssid <=3D VIR_DOMAIN_DEVICE_CCW_MAX_SSID && - addr->devno <=3D VIR_DOMAIN_DEVICE_CCW_MAX_DEVNO; -} - -int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, - int type) -{ - if (info->type !=3D type) - return 0; - - switch (info->type) { - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: - return virPCIDeviceAddressIsValid(&info->addr.pci, false); - - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE: - return 1; - - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390: - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO: - return 1; - - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW: - return virDomainDeviceCCWAddressIsValid(&info->addr.ccw); - - case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB: - return 1; - } - - return 0; -} - virDomainDeviceInfoPtr virDomainDeviceGetInfo(virDomainDeviceDefPtr device) { diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 2a827a093f..3ff6eea117 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2911,8 +2911,6 @@ virDomainDeviceDefPtr virDomainDeviceDefCopy(virDomai= nDeviceDefPtr src, const virDomainDef *def, virCapsPtr caps, virDomainXMLOptionPtr xmlopt); -int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, - int type); virDomainDeviceInfoPtr virDomainDeviceGetInfo(virDomainDeviceDefPtr device= ); void virDomainTPMDefFree(virDomainTPMDefPtr def); =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index ae0c26ba99..78307885dc 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -95,7 +95,9 @@ virCPUModeTypeToString; # conf/device_conf.h virDeviceInfoPCIAddressIsPresent; virDeviceInfoPCIAddressIsWanted; +virDomainDeviceAddressIsValid; virDomainDeviceAddressTypeToString; +virDomainDeviceCCWAddressIsValid; virDomainDeviceInfoAddressIsEqual; virDomainDeviceInfoCopy; virInterfaceLinkFormat; @@ -291,7 +293,6 @@ virDomainDefSetVcpusMax; virDomainDefValidate; virDomainDefVcpuOrderClear; virDomainDeleteConfig; -virDomainDeviceAddressIsValid; virDomainDeviceAliasIsUserAlias; virDomainDeviceDefCopy; virDomainDeviceDefFree; --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sun Apr 28 06:13:09 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1535724074132982.3011898921889; Fri, 31 Aug 2018 07:01:14 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B64B83084036; Fri, 31 Aug 2018 14:01:12 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 70ABD6DB8E; Fri, 31 Aug 2018 14:01:12 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 13C4F4A460; Fri, 31 Aug 2018 14:01:12 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w7VE0tiX026630 for ; Fri, 31 Aug 2018 10:00:55 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5DDFB1C72E; Fri, 31 Aug 2018 14:00:55 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.43.2.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id F3B1942224 for ; Fri, 31 Aug 2018 14:00:54 +0000 (UTC) From: Andrea Bolognani To: libvir-list@redhat.com Date: Fri, 31 Aug 2018 16:00:44 +0200 Message-Id: <20180831140047.3455-4-abologna@redhat.com> In-Reply-To: <20180831140047.3455-1-abologna@redhat.com> References: <20180831140047.3455-1-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 3/6] conf: Change return type of *AddressIsValid() to bool X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.40]); Fri, 31 Aug 2018 14:01:13 +0000 (UTC) X-ZohoMail: RDMRC_0 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" These are simple predicates, which makes bool a more appropriate return type than int. Signed-off-by: Andrea Bolognani Reviewed-by: J=EF=BF=BDn Tomko --- src/conf/device_conf.c | 31 ++++++++++++++++--------------- src/conf/device_conf.h | 10 +++++----- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index 1db92aba4a..1565d43fe6 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -160,8 +160,9 @@ virDomainDeviceInfoAddressIsEqual(const virDomainDevice= Info *a, return true; } =20 -int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, - bool report) +bool +virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, + bool report) { if (addr->domain > 0xFFFF) { if (report) @@ -169,7 +170,7 @@ int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr a= ddr, _("Invalid PCI address domain=3D'0x%x', " "must be <=3D 0xFFFF"), addr->domain); - return 0; + return false; } if (addr->bus > 0xFF) { if (report) @@ -177,7 +178,7 @@ int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr a= ddr, _("Invalid PCI address bus=3D'0x%x', " "must be <=3D 0xFF"), addr->bus); - return 0; + return false; } if (addr->slot > 0x1F) { if (report) @@ -185,7 +186,7 @@ int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr a= ddr, _("Invalid PCI address slot=3D'0x%x', " "must be <=3D 0x1F"), addr->slot); - return 0; + return false; } if (addr->function > 7) { if (report) @@ -193,16 +194,16 @@ int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr= addr, _("Invalid PCI address function=3D0x%x, " "must be <=3D 7"), addr->function); - return 0; + return false; } if (virPCIDeviceAddressIsEmpty(addr)) { if (report) virReportError(VIR_ERR_XML_ERROR, "%s", _("Invalid PCI address 0000:00:00, at least " "one of domain, bus, or slot must be > 0")); - return 0; + return false; } - return 1; + return true; } =20 =20 @@ -321,7 +322,7 @@ virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, return false; } =20 -int +bool virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr) { return addr->cssid <=3D VIR_DOMAIN_DEVICE_CCW_MAX_CSSID && @@ -329,32 +330,32 @@ virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAd= dressPtr addr) addr->devno <=3D VIR_DOMAIN_DEVICE_CCW_MAX_DEVNO; } =20 -int +bool virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, int type) { if (info->type !=3D type) - return 0; + return false; =20 switch (info->type) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI: return virPCIDeviceAddressIsValid(&info->addr.pci, false); =20 case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE: - return 1; + return true; =20 case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390: case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO: - return 1; + return true; =20 case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW: return virDomainDeviceCCWAddressIsValid(&info->addr.ccw); =20 case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB: - return 1; + return true; } =20 - return 0; + return false; } =20 int diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index 4a50c3183e..b09d6bcecb 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -188,11 +188,11 @@ bool virDomainDeviceInfoAddressIsEqual(const virDomai= nDeviceInfo *a, const virDomainDeviceInfo *b) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK; =20 -int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, - int type); +bool virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, + int type); =20 -int virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, - bool report); +bool virPCIDeviceAddressIsValid(virPCIDeviceAddressPtr addr, + bool report); bool virPCIDeviceAddressIsEmpty(const virPCIDeviceAddress *addr); =20 bool virDeviceInfoPCIAddressIsWanted(const virDomainDeviceInfo *info); @@ -208,7 +208,7 @@ int virPCIDeviceAddressFormat(virBufferPtr buf, bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, virPCIDeviceAddress *addr2); =20 -int virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr); +bool virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr); =20 int virInterfaceLinkParseXML(xmlNodePtr node, virNetDevIfLinkPtr lnk); --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sun Apr 28 06:13:09 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1535724063986915.1320750603574; Fri, 31 Aug 2018 07:01:03 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3F02C300192C; Fri, 31 Aug 2018 14:01:01 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D52076DB8E; Fri, 31 Aug 2018 14:01:00 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 6D5BC181A12F; Fri, 31 Aug 2018 14:01:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w7VE0uhY026638 for ; Fri, 31 Aug 2018 10:00:56 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0640642224; Fri, 31 Aug 2018 14:00:56 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.43.2.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9AE7D39DDC for ; Fri, 31 Aug 2018 14:00:55 +0000 (UTC) From: Andrea Bolognani To: libvir-list@redhat.com Date: Fri, 31 Aug 2018 16:00:45 +0200 Message-Id: <20180831140047.3455-5-abologna@redhat.com> In-Reply-To: <20180831140047.3455-1-abologna@redhat.com> References: <20180831140047.3455-1-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 4/6] conf: Move virDomainPCIAddressAsString() to device_conf X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); Fri, 31 Aug 2018 14:01:02 +0000 (UTC) X-ZohoMail: RDMRC_0 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" It's a better fit than domain_conf. Unfortunately, even after this change functions handling virPCIDeviceAddress are split pretty much evenly between conf/device_conf and utils/virpci: ideally everything would be moved to the former, including the struct declaration itself, and all the names would be changed to be consistent with the rest of the virDomainDevice*Address, but that's a cleanup for another day. Signed-off-by: Andrea Bolognani --- src/conf/device_conf.c | 13 +++++++++++++ src/conf/device_conf.h | 3 +++ src/conf/domain_addr.c | 14 -------------- src/conf/domain_addr.h | 3 --- src/libvirt_private.syms | 2 +- 5 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index 1565d43fe6..afa06c3cda 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -309,6 +309,19 @@ virPCIDeviceAddressFormat(virBufferPtr buf, return 0; } =20 +char * +virDomainPCIAddressAsString(virPCIDeviceAddressPtr addr) +{ + char *str; + + ignore_value(virAsprintf(&str, "%.4x:%.2x:%.2x.%.1x", + addr->domain, + addr->bus, + addr->slot, + addr->function)); + return str; +} + bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, virPCIDeviceAddress *addr2) diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index b09d6bcecb..846d12543d 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -205,6 +205,9 @@ int virPCIDeviceAddressFormat(virBufferPtr buf, virPCIDeviceAddress addr, bool includeTypeInAddr); =20 +char *virDomainPCIAddressAsString(virPCIDeviceAddressPtr addr) + ATTRIBUTE_NONNULL(1); + bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, virPCIDeviceAddress *addr2); =20 diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c index b62fd53c66..d2e1142462 100644 --- a/src/conf/domain_addr.c +++ b/src/conf/domain_addr.c @@ -573,20 +573,6 @@ virDomainPCIAddressSetGrow(virDomainPCIAddressSetPtr a= ddrs, } =20 =20 -char * -virDomainPCIAddressAsString(virPCIDeviceAddressPtr addr) -{ - char *str; - - ignore_value(virAsprintf(&str, "%.4x:%.2x:%.2x.%.1x", - addr->domain, - addr->bus, - addr->slot, - addr->function)); - return str; -} - - /* * Check if the PCI slot is used by another device. */ diff --git a/src/conf/domain_addr.h b/src/conf/domain_addr.h index 5ad9d8ef3d..2a9af9c00b 100644 --- a/src/conf/domain_addr.h +++ b/src/conf/domain_addr.h @@ -124,9 +124,6 @@ struct _virDomainPCIAddressSet { typedef struct _virDomainPCIAddressSet virDomainPCIAddressSet; typedef virDomainPCIAddressSet *virDomainPCIAddressSetPtr; =20 -char *virDomainPCIAddressAsString(virPCIDeviceAddressPtr addr) - ATTRIBUTE_NONNULL(1); - virDomainPCIAddressSetPtr virDomainPCIAddressSetAlloc(unsigned int nbuses); =20 void virDomainPCIAddressSetFree(virDomainPCIAddressSetPtr addrs); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 78307885dc..77f55b3c40 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -100,6 +100,7 @@ virDomainDeviceAddressTypeToString; virDomainDeviceCCWAddressIsValid; virDomainDeviceInfoAddressIsEqual; virDomainDeviceInfoCopy; +virDomainPCIAddressAsString; virInterfaceLinkFormat; virInterfaceLinkParseXML; virPCIDeviceAddressEqual; @@ -113,7 +114,6 @@ virPCIDeviceAddressParseXML; virDomainCCWAddressAssign; virDomainCCWAddressSetCreateFromDomain; virDomainCCWAddressSetFree; -virDomainPCIAddressAsString; virDomainPCIAddressBusIsFullyReserved; virDomainPCIAddressBusSetModel; virDomainPCIAddressEnsureAddr; --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sun Apr 28 06:13:09 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1535724071674529.6083961390798; Fri, 31 Aug 2018 07:01:11 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0C7E583F3D; Fri, 31 Aug 2018 14:01:10 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B49E62010DA9; Fri, 31 Aug 2018 14:01:09 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 429144BB7F; Fri, 31 Aug 2018 14:01:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w7VE0uiN026643 for ; Fri, 31 Aug 2018 10:00:56 -0400 Received: by smtp.corp.redhat.com (Postfix) id A21ED39DDC; Fri, 31 Aug 2018 14:00:56 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.43.2.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 43C7B1C72E for ; Fri, 31 Aug 2018 14:00:56 +0000 (UTC) From: Andrea Bolognani To: libvir-list@redhat.com Date: Fri, 31 Aug 2018 16:00:46 +0200 Message-Id: <20180831140047.3455-6-abologna@redhat.com> In-Reply-To: <20180831140047.3455-1-abologna@redhat.com> References: <20180831140047.3455-1-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 5/6] conf: Rename virDomainPCIAddressAsString() X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Fri, 31 Aug 2018 14:01:10 +0000 (UTC) X-ZohoMail: RDMRC_0 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" The struct is called virPCIDeviceAddress and the functions operating on it should be named accordingly. Signed-off-by: Andrea Bolognani --- src/conf/device_conf.c | 2 +- src/conf/device_conf.h | 2 +- src/conf/domain_addr.c | 6 +++--- src/libvirt_private.syms | 2 +- src/qemu/qemu_command.c | 2 +- src/qemu/qemu_domain_address.c | 6 +++--- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index afa06c3cda..48788540d3 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -310,7 +310,7 @@ virPCIDeviceAddressFormat(virBufferPtr buf, } =20 char * -virDomainPCIAddressAsString(virPCIDeviceAddressPtr addr) +virPCIDeviceAddressAsString(virPCIDeviceAddressPtr addr) { char *str; =20 diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index 846d12543d..c23a5918b3 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -205,7 +205,7 @@ int virPCIDeviceAddressFormat(virBufferPtr buf, virPCIDeviceAddress addr, bool includeTypeInAddr); =20 -char *virDomainPCIAddressAsString(virPCIDeviceAddressPtr addr) +char *virPCIDeviceAddressAsString(virPCIDeviceAddressPtr addr) ATTRIBUTE_NONNULL(1); =20 bool virPCIDeviceAddressEqual(virPCIDeviceAddress *addr1, diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c index d2e1142462..442e6aab94 100644 --- a/src/conf/domain_addr.c +++ b/src/conf/domain_addr.c @@ -604,7 +604,7 @@ virDomainPCIAddressReserveAddrInternal(virDomainPCIAddr= essSetPtr addrs, virErrorNumber errType =3D (fromConfig ? VIR_ERR_XML_ERROR : VIR_ERR_INTERNAL_ERROR= ); =20 - if (!(addrStr =3D virDomainPCIAddressAsString(addr))) + if (!(addrStr =3D virPCIDeviceAddressAsString(addr))) goto cleanup; =20 /* Add an extra bus if necessary */ @@ -689,7 +689,7 @@ virDomainPCIAddressEnsureAddr(virDomainPCIAddressSetPtr= addrs, if (!flags) return 0; =20 - if (!(addrStr =3D virDomainPCIAddressAsString(&dev->addr.pci))) + if (!(addrStr =3D virPCIDeviceAddressAsString(&dev->addr.pci))) goto cleanup; =20 if (virDeviceInfoPCIAddressIsPresent(dev)) { @@ -770,7 +770,7 @@ virDomainPCIAddressFindUnusedFunctionOnBus(virDomainPCI= AddressBusPtr bus, =20 *found =3D false; =20 - if (!(addrStr =3D virDomainPCIAddressAsString(searchAddr))) + if (!(addrStr =3D virPCIDeviceAddressAsString(searchAddr))) goto cleanup; =20 if (!virDomainPCIAddressFlagsCompatible(searchAddr, addrStr, bus->flag= s, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 77f55b3c40..44bf54da81 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -100,9 +100,9 @@ virDomainDeviceAddressTypeToString; virDomainDeviceCCWAddressIsValid; virDomainDeviceInfoAddressIsEqual; virDomainDeviceInfoCopy; -virDomainPCIAddressAsString; virInterfaceLinkFormat; virInterfaceLinkParseXML; +virPCIDeviceAddressAsString; virPCIDeviceAddressEqual; virPCIDeviceAddressFormat; virPCIDeviceAddressIsEmpty; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 8aa20496bc..b72506f4e1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -301,7 +301,7 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, if (info->type =3D=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) { size_t i; =20 - if (!(devStr =3D virDomainPCIAddressAsString(&info->addr.pci))) + if (!(devStr =3D virPCIDeviceAddressAsString(&info->addr.pci))) goto cleanup; for (i =3D 0; i < domainDef->ncontrollers; i++) { virDomainControllerDefPtr cont =3D domainDef->controllers[i]; diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index dda14adeb3..24fdf12128 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -1306,7 +1306,7 @@ qemuDomainCollectPCIAddress(virDomainDefPtr def ATTRI= BUTE_UNUSED, * inappropriate address types. */ if (!info->pciConnectFlags) { - char *addrStr =3D virDomainPCIAddressAsString(&info->addr.pci); + char *addrStr =3D virPCIDeviceAddressAsString(&info->addr.pci); =20 VIR_WARN("qemuDomainDeviceCalculatePCIConnectFlags() thinks that t= he " "device with PCI address %s should not have a PCI address= ", @@ -1554,7 +1554,7 @@ qemuDomainValidateDevicePCISlotsPIIX3(virDomainDefPtr= def, memset(&tmp_addr, 0, sizeof(tmp_addr)); tmp_addr.slot =3D 2; =20 - if (!(addrStr =3D virDomainPCIAddressAsString(&tmp_addr))) + if (!(addrStr =3D virPCIDeviceAddressAsString(&tmp_addr))) goto cleanup; if (!virDomainPCIAddressValidate(addrs, &tmp_addr, addrStr, flags, true)) @@ -1743,7 +1743,7 @@ qemuDomainValidateDevicePCISlotsQ35(virDomainDefPtr d= ef, memset(&tmp_addr, 0, sizeof(tmp_addr)); tmp_addr.slot =3D 1; =20 - if (!(addrStr =3D virDomainPCIAddressAsString(&tmp_addr))) + if (!(addrStr =3D virPCIDeviceAddressAsString(&tmp_addr))) goto cleanup; if (!virDomainPCIAddressValidate(addrs, &tmp_addr, addrStr, flags, true)) --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Sun Apr 28 06:13:09 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 153572407126026.782819578913973; Fri, 31 Aug 2018 07:01:11 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 940553001765; Fri, 31 Aug 2018 14:01:09 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5288F9D3A9; Fri, 31 Aug 2018 14:01:09 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id DAF6E4BB75; Fri, 31 Aug 2018 14:01:08 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w7VE0vgv026653 for ; Fri, 31 Aug 2018 10:00:57 -0400 Received: by smtp.corp.redhat.com (Postfix) id 6876839DDC; Fri, 31 Aug 2018 14:00:57 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.43.2.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DFA3863F54 for ; Fri, 31 Aug 2018 14:00:56 +0000 (UTC) From: Andrea Bolognani To: libvir-list@redhat.com Date: Fri, 31 Aug 2018 16:00:47 +0200 Message-Id: <20180831140047.3455-7-abologna@redhat.com> In-Reply-To: <20180831140047.3455-1-abologna@redhat.com> References: <20180831140047.3455-1-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 6/6] conf: Move *AddressParseXML() to device_conf X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.27 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Fri, 31 Aug 2018 14:01:10 +0000 (UTC) X-ZohoMail: RDMRC_0 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" The corresponding structs are declared there. Signed-off-by: Andrea Bolognani Reviewed-by: J=EF=BF=BDn Tomko --- src/conf/device_conf.c | 267 ++++++++++++++++++++++++++++++++++++++ src/conf/device_conf.h | 17 +++ src/conf/domain_conf.c | 270 --------------------------------------- src/libvirt_private.syms | 6 + 4 files changed, 290 insertions(+), 270 deletions(-) diff --git a/src/conf/device_conf.c b/src/conf/device_conf.c index 48788540d3..18592bbc1d 100644 --- a/src/conf/device_conf.c +++ b/src/conf/device_conf.c @@ -343,6 +343,273 @@ virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAd= dressPtr addr) addr->devno <=3D VIR_DOMAIN_DEVICE_CCW_MAX_DEVNO; } =20 +int +virDomainDeviceCCWAddressParseXML(xmlNodePtr node, + virDomainDeviceCCWAddressPtr addr) +{ + int ret =3D -1; + char *cssid; + char *ssid; + char *devno; + + memset(addr, 0, sizeof(*addr)); + + cssid =3D virXMLPropString(node, "cssid"); + ssid =3D virXMLPropString(node, "ssid"); + devno =3D virXMLPropString(node, "devno"); + + if (cssid && ssid && devno) { + if (cssid && + virStrToLong_uip(cssid, NULL, 0, &addr->cssid) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'cssid' attribute")); + goto cleanup; + } + if (ssid && + virStrToLong_uip(ssid, NULL, 0, &addr->ssid) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'ssid' attribute")); + goto cleanup; + } + if (devno && + virStrToLong_uip(devno, NULL, 0, &addr->devno) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'devno' attribute")); + goto cleanup; + } + if (!virDomainDeviceCCWAddressIsValid(addr)) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Invalid specification for virtio ccw" + " address: cssid=3D'%s' ssid=3D'%s' devno=3D'= %s'"), + cssid, ssid, devno); + goto cleanup; + } + addr->assigned =3D true; + } else if (cssid || ssid || devno) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Invalid partial specification for virtio ccw" + " address")); + goto cleanup; + } + + ret =3D 0; + + cleanup: + VIR_FREE(cssid); + VIR_FREE(ssid); + VIR_FREE(devno); + return ret; +} + +int +virDomainDeviceDriveAddressParseXML(xmlNodePtr node, + virDomainDeviceDriveAddressPtr addr) +{ + char *bus, *unit, *controller, *target; + int ret =3D -1; + + memset(addr, 0, sizeof(*addr)); + + controller =3D virXMLPropString(node, "controller"); + bus =3D virXMLPropString(node, "bus"); + target =3D virXMLPropString(node, "target"); + unit =3D virXMLPropString(node, "unit"); + + if (controller && + virStrToLong_uip(controller, NULL, 10, &addr->controller) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'controller' attribute")); + goto cleanup; + } + + if (bus && + virStrToLong_uip(bus, NULL, 10, &addr->bus) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'bus' attribute")); + goto cleanup; + } + + if (target && + virStrToLong_uip(target, NULL, 10, &addr->target) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'target' attribute")); + goto cleanup; + } + + if (unit && + virStrToLong_uip(unit, NULL, 10, &addr->unit) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'unit' attribute")); + goto cleanup; + } + + ret =3D 0; + + cleanup: + VIR_FREE(controller); + VIR_FREE(bus); + VIR_FREE(target); + VIR_FREE(unit); + return ret; +} + +int +virDomainDeviceVirtioSerialAddressParseXML(xmlNodePtr node, + virDomainDeviceVirtioSerialAddr= essPtr addr) +{ + char *controller, *bus, *port; + int ret =3D -1; + + memset(addr, 0, sizeof(*addr)); + + controller =3D virXMLPropString(node, "controller"); + bus =3D virXMLPropString(node, "bus"); + port =3D virXMLPropString(node, "port"); + + if (controller && + virStrToLong_uip(controller, NULL, 10, &addr->controller) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'controller' attribute")); + goto cleanup; + } + + if (bus && + virStrToLong_uip(bus, NULL, 10, &addr->bus) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'bus' attribute")); + goto cleanup; + } + + if (port && + virStrToLong_uip(port, NULL, 10, &addr->port) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'port' attribute")); + goto cleanup; + } + + ret =3D 0; + + cleanup: + VIR_FREE(controller); + VIR_FREE(bus); + VIR_FREE(port); + return ret; +} + +int +virDomainDeviceCcidAddressParseXML(xmlNodePtr node, + virDomainDeviceCcidAddressPtr addr) +{ + char *controller, *slot; + int ret =3D -1; + + memset(addr, 0, sizeof(*addr)); + + controller =3D virXMLPropString(node, "controller"); + slot =3D virXMLPropString(node, "slot"); + + if (controller && + virStrToLong_uip(controller, NULL, 10, &addr->controller) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'controller' attribute")); + goto cleanup; + } + + if (slot && + virStrToLong_uip(slot, NULL, 10, &addr->slot) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'slot' attribute")); + goto cleanup; + } + + ret =3D 0; + + cleanup: + VIR_FREE(controller); + VIR_FREE(slot); + return ret; +} + +static int +virDomainDeviceUSBAddressParsePort(virDomainDeviceUSBAddressPtr addr, + char *port) +{ + char *tmp =3D port; + size_t i; + + for (i =3D 0; i < VIR_DOMAIN_DEVICE_USB_MAX_PORT_DEPTH; i++) { + if (virStrToLong_uip(tmp, &tmp, 10, &addr->port[i]) < 0) + break; + + if (*tmp =3D=3D '\0') + return 0; + + if (*tmp =3D=3D '.') + tmp++; + } + + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'port' attribute")); + return -1; +} + +int +virDomainDeviceUSBAddressParseXML(xmlNodePtr node, + virDomainDeviceUSBAddressPtr addr) +{ + char *port, *bus; + int ret =3D -1; + + memset(addr, 0, sizeof(*addr)); + + port =3D virXMLPropString(node, "port"); + bus =3D virXMLPropString(node, "bus"); + + if (port && virDomainDeviceUSBAddressParsePort(addr, port) < 0) + goto cleanup; + + if (bus && + virStrToLong_uip(bus, NULL, 10, &addr->bus) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'bus' attribute")); + goto cleanup; + } + + ret =3D 0; + + cleanup: + VIR_FREE(bus); + VIR_FREE(port); + return ret; +} + +int +virDomainDeviceSpaprVioAddressParseXML(xmlNodePtr node, + virDomainDeviceSpaprVioAddressPtr ad= dr) +{ + char *reg; + int ret; + + memset(addr, 0, sizeof(*addr)); + + reg =3D virXMLPropString(node, "reg"); + if (reg) { + if (virStrToLong_ull(reg, NULL, 16, &addr->reg) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Cannot parse
'reg' attribute")); + ret =3D -1; + goto cleanup; + } + + addr->has_reg =3D true; + } + + ret =3D 0; + cleanup: + VIR_FREE(reg); + return ret; +} + bool virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info, int type) diff --git a/src/conf/device_conf.h b/src/conf/device_conf.h index c23a5918b3..33146f0caa 100644 --- a/src/conf/device_conf.h +++ b/src/conf/device_conf.h @@ -212,6 +212,23 @@ bool virPCIDeviceAddressEqual(virPCIDeviceAddress *add= r1, virPCIDeviceAddress *addr2); =20 bool virDomainDeviceCCWAddressIsValid(virDomainDeviceCCWAddressPtr addr); +int virDomainDeviceCCWAddressParseXML(xmlNodePtr node, + virDomainDeviceCCWAddressPtr addr); + +int virDomainDeviceDriveAddressParseXML(xmlNodePtr node, + virDomainDeviceDriveAddressPtr add= r); + +int virDomainDeviceVirtioSerialAddressParseXML(xmlNodePtr node, + virDomainDeviceVirtioSerial= AddressPtr addr); + +int virDomainDeviceCcidAddressParseXML(xmlNodePtr node, + virDomainDeviceCcidAddressPtr addr); + +int virDomainDeviceUSBAddressParseXML(xmlNodePtr node, + virDomainDeviceUSBAddressPtr addr); + +int virDomainDeviceSpaprVioAddressParseXML(xmlNodePtr node, + virDomainDeviceSpaprVioAddressP= tr addr); =20 int virInterfaceLinkParseXML(xmlNodePtr node, virNetDevIfLinkPtr lnk); diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 3cae6b2aeb..7a52fc1e81 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6538,276 +6538,6 @@ virDomainDeviceInfoFormat(virBufferPtr buf, virBufferAddLit(buf, "/>\n"); } =20 -static int -virDomainDeviceDriveAddressParseXML(xmlNodePtr node, - virDomainDeviceDriveAddressPtr addr) -{ - char *bus, *unit, *controller, *target; - int ret =3D -1; - - memset(addr, 0, sizeof(*addr)); - - controller =3D virXMLPropString(node, "controller"); - bus =3D virXMLPropString(node, "bus"); - target =3D virXMLPropString(node, "target"); - unit =3D virXMLPropString(node, "unit"); - - if (controller && - virStrToLong_uip(controller, NULL, 10, &addr->controller) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'controller' attribute")); - goto cleanup; - } - - if (bus && - virStrToLong_uip(bus, NULL, 10, &addr->bus) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'bus' attribute")); - goto cleanup; - } - - if (target && - virStrToLong_uip(target, NULL, 10, &addr->target) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'target' attribute")); - goto cleanup; - } - - if (unit && - virStrToLong_uip(unit, NULL, 10, &addr->unit) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'unit' attribute")); - goto cleanup; - } - - ret =3D 0; - - cleanup: - VIR_FREE(controller); - VIR_FREE(bus); - VIR_FREE(target); - VIR_FREE(unit); - return ret; -} - - -static int -virDomainDeviceVirtioSerialAddressParseXML( - xmlNodePtr node, - virDomainDeviceVirtioSerialAddressPtr addr -) -{ - char *controller, *bus, *port; - int ret =3D -1; - - memset(addr, 0, sizeof(*addr)); - - controller =3D virXMLPropString(node, "controller"); - bus =3D virXMLPropString(node, "bus"); - port =3D virXMLPropString(node, "port"); - - if (controller && - virStrToLong_uip(controller, NULL, 10, &addr->controller) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'controller' attribute")); - goto cleanup; - } - - if (bus && - virStrToLong_uip(bus, NULL, 10, &addr->bus) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'bus' attribute")); - goto cleanup; - } - - if (port && - virStrToLong_uip(port, NULL, 10, &addr->port) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'port' attribute")); - goto cleanup; - } - - ret =3D 0; - - cleanup: - VIR_FREE(controller); - VIR_FREE(bus); - VIR_FREE(port); - return ret; -} - -static int -virDomainDeviceCCWAddressParseXML(xmlNodePtr node, - virDomainDeviceCCWAddressPtr addr) -{ - int ret =3D -1; - char *cssid; - char *ssid; - char *devno; - - memset(addr, 0, sizeof(*addr)); - - cssid =3D virXMLPropString(node, "cssid"); - ssid =3D virXMLPropString(node, "ssid"); - devno =3D virXMLPropString(node, "devno"); - - if (cssid && ssid && devno) { - if (cssid && - virStrToLong_uip(cssid, NULL, 0, &addr->cssid) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'cssid' attribute")); - goto cleanup; - } - if (ssid && - virStrToLong_uip(ssid, NULL, 0, &addr->ssid) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'ssid' attribute")); - goto cleanup; - } - if (devno && - virStrToLong_uip(devno, NULL, 0, &addr->devno) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'devno' attribute")); - goto cleanup; - } - if (!virDomainDeviceCCWAddressIsValid(addr)) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("Invalid specification for virtio ccw" - " address: cssid=3D'%s' ssid=3D'%s' devno=3D'= %s'"), - cssid, ssid, devno); - goto cleanup; - } - addr->assigned =3D true; - } else if (cssid || ssid || devno) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Invalid partial specification for virtio ccw" - " address")); - goto cleanup; - } - - ret =3D 0; - - cleanup: - VIR_FREE(cssid); - VIR_FREE(ssid); - VIR_FREE(devno); - return ret; -} - -static int -virDomainDeviceCcidAddressParseXML(xmlNodePtr node, - virDomainDeviceCcidAddressPtr addr) -{ - char *controller, *slot; - int ret =3D -1; - - memset(addr, 0, sizeof(*addr)); - - controller =3D virXMLPropString(node, "controller"); - slot =3D virXMLPropString(node, "slot"); - - if (controller && - virStrToLong_uip(controller, NULL, 10, &addr->controller) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'controller' attribute")); - goto cleanup; - } - - if (slot && - virStrToLong_uip(slot, NULL, 10, &addr->slot) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'slot' attribute")); - goto cleanup; - } - - ret =3D 0; - - cleanup: - VIR_FREE(controller); - VIR_FREE(slot); - return ret; -} - -static int -virDomainDeviceUSBAddressParsePort(virDomainDeviceUSBAddressPtr addr, - char *port) -{ - char *tmp =3D port; - size_t i; - - for (i =3D 0; i < VIR_DOMAIN_DEVICE_USB_MAX_PORT_DEPTH; i++) { - if (virStrToLong_uip(tmp, &tmp, 10, &addr->port[i]) < 0) - break; - - if (*tmp =3D=3D '\0') - return 0; - - if (*tmp =3D=3D '.') - tmp++; - } - - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'port' attribute")); - return -1; -} - -static int -virDomainDeviceUSBAddressParseXML(xmlNodePtr node, - virDomainDeviceUSBAddressPtr addr) -{ - char *port, *bus; - int ret =3D -1; - - memset(addr, 0, sizeof(*addr)); - - port =3D virXMLPropString(node, "port"); - bus =3D virXMLPropString(node, "bus"); - - if (port && virDomainDeviceUSBAddressParsePort(addr, port) < 0) - goto cleanup; - - if (bus && - virStrToLong_uip(bus, NULL, 10, &addr->bus) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'bus' attribute")); - goto cleanup; - } - - ret =3D 0; - - cleanup: - VIR_FREE(bus); - VIR_FREE(port); - return ret; -} - -static int -virDomainDeviceSpaprVioAddressParseXML(xmlNodePtr node, - virDomainDeviceSpaprVioAddressPtr ad= dr) -{ - char *reg; - int ret; - - memset(addr, 0, sizeof(*addr)); - - reg =3D virXMLPropString(node, "reg"); - if (reg) { - if (virStrToLong_ull(reg, NULL, 16, &addr->reg) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot parse
'reg' attribute")); - ret =3D -1; - goto cleanup; - } - - addr->has_reg =3D true; - } - - ret =3D 0; - cleanup: - VIR_FREE(reg); - return ret; -} - static int virDomainDeviceUSBMasterParseXML(xmlNodePtr node, virDomainDeviceUSBMasterPtr master) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 44bf54da81..6711cce02d 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -97,9 +97,15 @@ virDeviceInfoPCIAddressIsPresent; virDeviceInfoPCIAddressIsWanted; virDomainDeviceAddressIsValid; virDomainDeviceAddressTypeToString; +virDomainDeviceCcidAddressParseXML; virDomainDeviceCCWAddressIsValid; +virDomainDeviceCCWAddressParseXML; +virDomainDeviceDriveAddressParseXML; virDomainDeviceInfoAddressIsEqual; virDomainDeviceInfoCopy; +virDomainDeviceSpaprVioAddressParseXML; +virDomainDeviceUSBAddressParseXML; +virDomainDeviceVirtioSerialAddressParseXML; virInterfaceLinkFormat; virInterfaceLinkParseXML; virPCIDeviceAddressAsString; --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list