From nobody Mon Feb 9 10:30:31 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; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1643018909; cv=none; d=zohomail.com; s=zohoarc; b=m6PKQPOkyhSdNv+5CDXYqHIl+2hY8W/9m5vYVVqLtQDwaHh0lAKhERKEDYshCoEP3zFP3csPEkvIW2IyhVY9gY6Ak2DxTIbpWm8xlt4vGqWQm6qaURqIdUzWQd/1ZYe7Ko4kDEYYBuS5GfYdRYiIZj7Ln7HWdnjNR3r0SKesIh0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1643018909; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=GG2dtsOwz22AugOaaTbx+eJjskpWONIR9L2y0bqzIIU=; b=myCq3/T7dsTyfdXbwiqRoxKLwB8DKNUTopPH6n/oe1HbhGLlw8m79slkTrH2+4AM7P5dtSt2t6mk2EjGrQb+C/VEpnEc3jilyGc6I4FYHbe6+3Xt5wkci22y2gT+AhYXNs2FhGdYlifjSrjUnm2X/cTryD+ibmeVxap6MIcLg20= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) 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 1643018909694940.8576003978427; Mon, 24 Jan 2022 02:08:29 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-588-vLESTgA_O4WgkJu1RssIXg-1; Mon, 24 Jan 2022 05:08:25 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8ED1085EE62; Mon, 24 Jan 2022 10:08:20 +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 6ADFB73172; Mon, 24 Jan 2022 10:08:20 +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 39C741809CBA; Mon, 24 Jan 2022 10:08:20 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 20OA8IGl021159 for ; Mon, 24 Jan 2022 05:08:18 -0500 Received: by smtp.corp.redhat.com (Postfix) id 836146D03D; Mon, 24 Jan 2022 10:08:18 +0000 (UTC) Received: from localhost.localdomain (unknown [10.40.195.147]) by smtp.corp.redhat.com (Postfix) with ESMTP id EA0EA6F948 for ; Mon, 24 Jan 2022 10:08:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1643018909; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=GG2dtsOwz22AugOaaTbx+eJjskpWONIR9L2y0bqzIIU=; b=fvHQ/QxiDXZWG0EZo2oM2clNe6x9jtpxD2Jl/RGUN08o74F3XxOJ8qw2Llx+eQVp5/KWuj 2K2h4zdVDqwkQQwFtr6hebKPnT5Ujk6Q5eaWvEDrHHEIeG6TtBpCqpbXbv+DhWarnJMCxe 1ZFdOOBJowgYrN1TCt4bIJzX5mT9LE8= X-MC-Unique: vLESTgA_O4WgkJu1RssIXg-1 From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 07/11] conf: Fix @track member of _virDomainTimerDef struct Date: Mon, 24 Jan 2022 11:07:29 +0100 Message-Id: <4504ddb3e1601ab61d2ae6240dcdd4143d35561a.1643018556.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 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-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1643018911618100001 Content-Type: text/plain; charset="utf-8" The @track member of the _virDomainTimerDef struct stores values of the virDomainTimerTrackType enum, or -1 for the default value (when user provided no value in XML). This is needlessly complicated. Introduce new value to the enum which reflects the default state. Signed-off-by: Michal Privoznik --- src/conf/domain_conf.c | 22 ++++++---------------- src/conf/domain_conf.h | 5 +++-- src/libxl/xen_common.c | 4 ++-- src/qemu/qemu_command.c | 2 +- src/qemu/qemu_validate.c | 2 +- 5 files changed, 13 insertions(+), 22 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index ec12c6d8dd..848efa30b8 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1188,6 +1188,7 @@ VIR_ENUM_IMPL(virDomainTimerName, =20 VIR_ENUM_IMPL(virDomainTimerTrack, VIR_DOMAIN_TIMER_TRACK_LAST, + "none", "boot", "guest", "wall", @@ -5010,7 +5011,7 @@ virDomainDefPostParseTimer(virDomainDef *def) =20 if (timer->name !=3D VIR_DOMAIN_TIMER_NAME_PLATFORM && timer->name !=3D VIR_DOMAIN_TIMER_NAME_RTC) { - if (timer->track !=3D -1) { + if (timer->track !=3D VIR_DOMAIN_TIMER_TRACK_NONE) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("timer %s doesn't support setting of " "timer track"), @@ -12033,10 +12034,9 @@ virDomainTimerDefParseXML(xmlNodePtr node, } } =20 - def->track =3D -1; track =3D virXMLPropString(node, "track"); if (track !=3D NULL) { - if ((def->track =3D virDomainTimerTrackTypeFromString(track)) < 0)= { + if ((def->track =3D virDomainTimerTrackTypeFromString(track)) <=3D= 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown timer track '%s'"), track); goto error; @@ -26123,19 +26123,9 @@ virDomainTimerDefFormat(virBuffer *buf, virDomainTimerTickpolicyTypeToString(def->tickpo= licy)); } =20 - if ((def->name =3D=3D VIR_DOMAIN_TIMER_NAME_PLATFORM) - || (def->name =3D=3D VIR_DOMAIN_TIMER_NAME_RTC)) { - if (def->track !=3D -1) { - const char *track - =3D virDomainTimerTrackTypeToString(def->track); - if (!track) { - virReportError(VIR_ERR_INTERNAL_ERROR, - _("unexpected timer track %d"), - def->track); - return -1; - } - virBufferAsprintf(buf, " track=3D'%s'", track); - } + if (def->track !=3D VIR_DOMAIN_TIMER_TRACK_NONE) { + virBufferAsprintf(buf, " track=3D'%s'", + virDomainTimerTrackTypeToString(def->track)); } =20 if (def->name =3D=3D VIR_DOMAIN_TIMER_NAME_TSC) { diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 1ccc63706a..17ebface32 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2362,7 +2362,8 @@ typedef enum { } virDomainTimerNameType; =20 typedef enum { - VIR_DOMAIN_TIMER_TRACK_BOOT =3D 0, + VIR_DOMAIN_TIMER_TRACK_NONE =3D 0, + VIR_DOMAIN_TIMER_TRACK_BOOT, VIR_DOMAIN_TIMER_TRACK_GUEST, VIR_DOMAIN_TIMER_TRACK_WALL, VIR_DOMAIN_TIMER_TRACK_REALTIME, @@ -2416,7 +2417,7 @@ struct _virDomainTimerDef { virDomainTimerCatchupDef catchup; =20 /* track is only valid for name=3D'platform|rtc' */ - int track; /* boot|guest|wall */ + int track; /* enum virDomainTimerTrackType */ =20 /* frequency & mode are only valid for name=3D'tsc' */ unsigned long long frequency; /* in Hz, unspecified =3D 0 */ diff --git a/src/libxl/xen_common.c b/src/libxl/xen_common.c index 4c8bf39ddc..78f3b78ac8 100644 --- a/src/libxl/xen_common.c +++ b/src/libxl/xen_common.c @@ -556,7 +556,7 @@ xenParseHypervisorFeatures(virConf *conf, virDomainDef = *def) timer->present =3D VIR_TRISTATE_BOOL_YES; timer->tickpolicy =3D VIR_DOMAIN_TIMER_TICKPOLICY_NONE; timer->mode =3D VIR_DOMAIN_TIMER_MODE_AUTO; - timer->track =3D -1; + timer->track =3D VIR_DOMAIN_TIMER_TRACK_NONE; if (STREQ_NULLABLE(tscmode, "always_emulate")) timer->mode =3D VIR_DOMAIN_TIMER_MODE_EMULATE; else if (STREQ_NULLABLE(tscmode, "native")) @@ -632,7 +632,7 @@ xenParseHypervisorFeatures(virConf *conf, virDomainDef = *def) } timer->tickpolicy =3D VIR_DOMAIN_TIMER_TICKPOLICY_NONE; timer->mode =3D -1; - timer->track =3D -1; + timer->track =3D VIR_DOMAIN_TIMER_TRACK_NONE; =20 def->clock.timers[def->clock.ntimers - 1] =3D timer; } diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index f0429532f8..bd32921c04 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6190,7 +6190,7 @@ qemuBuildClockArgStr(virDomainClockDef *def) for (i =3D 0; i < def->ntimers; i++) { if (def->timers[i]->name =3D=3D VIR_DOMAIN_TIMER_NAME_RTC) { switch (def->timers[i]->track) { - case -1: /* unspecified - use hypervisor default */ + case VIR_DOMAIN_TIMER_TRACK_NONE: /* unspecified - use hypervi= sor default */ break; case VIR_DOMAIN_TIMER_TRACK_BOOT: return NULL; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index f52217497a..3bf39f8d93 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -428,7 +428,7 @@ qemuValidateDomainDefClockTimers(const virDomainDef *de= f, =20 case VIR_DOMAIN_TIMER_NAME_RTC: switch (timer->track) { - case -1: /* unspecified - use hypervisor default */ + case VIR_DOMAIN_TIMER_TRACK_NONE: /* unspecified - use hypervi= sor default */ case VIR_DOMAIN_TIMER_TRACK_GUEST: case VIR_DOMAIN_TIMER_TRACK_WALL: case VIR_DOMAIN_TIMER_TRACK_REALTIME: --=20 2.34.1