From nobody Tue Feb 10 08:26:56 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.54 as permitted sender) client-ip=209.85.128.54; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f54.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1602943372; cv=none; d=zohomail.com; s=zohoarc; b=mviVG9TutQRPv9vZDFJa+6XRARlvu1ctKMYKftCop2iYBElPRSAPo3Xfw/kLIrbbSJOMMPK7ExMow1qzLOz99VWfdOSCP2NtD9IRAy0gBGC40Z8DQ1L1GOXDPUUup5VbI+fxivIxLdJNxnnuSFduhQBNSNOkccu2PjJSE7tv3Ig= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1602943372; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=P79ova5bfhvdNtcXbRn3PCQfTzuWJLAcssq4u0+DQy4=; b=TSG0YUAXTYzEO/jIg57oA7JX+ojXJnJzW95MAdNutzy2hk44l26G89ddMliMAmWMVc+2Ws7sP3t1F79CbYKWK0uKNJKO+1oBwcOB+tjhmKPHnJHmPIIYa+RzFfOwds3YUGTCiyWtg94l6HmDuV5Bt2aly1FNEY1GV74j+j/ndiQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by mx.zohomail.com with SMTPS id 1602943372227430.0240338317087; Sat, 17 Oct 2020 07:02:52 -0700 (PDT) Received: by mail-wm1-f54.google.com with SMTP id d81so6153401wmc.1 for ; Sat, 17 Oct 2020 07:02:51 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (117.red-83-52-172.dynamicip.rima-tde.net. [83.52.172.117]) by smtp.gmail.com with ESMTPSA id l11sm8472829wro.89.2020.10.17.07.02.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 17 Oct 2020 07:02:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=P79ova5bfhvdNtcXbRn3PCQfTzuWJLAcssq4u0+DQy4=; b=B8Pi0xkK9MBj6ODbJJQEPpHmuHk1S/EPn7I9X6Qq8eNHEFUX4XWnoebFPIg7P/ll3e NTQ/PqyffiBThWBQpU6gQtQ/m9Zgg+vow9D/jmXGZ1UUNpWVdT5g03IktcQ6iMsxvB1l U6f70hH1p6zW/O9AjKPpvPeiqxMtNZhN7qlnqXwgwRezWDuESysni4eZvd4NByZpHFWw qrE+tlV0ceXaReKGs03fu+f5yEWieY6QMxDGNOvXoBpTW+mAw8rCDl6hlxxU7l43w8r/ UFSnQu8tBE56jRvzoY/ufbqnFAyQ/gg1mb0mv7dlIBQR6GbK5PG/DFuIz7ITctMbaOiz HTzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=P79ova5bfhvdNtcXbRn3PCQfTzuWJLAcssq4u0+DQy4=; b=cvViztCqx+bvFiM395MHYHSDnMJqImQh/j0xIADRJBCscWSrCn/UEC7ww281SX1Wdo 6iu+Siu0YAYxCdMpWIeToXRqx/7fQoQmcEkj3Si3fXmhHlqMbRehxXLrb+kF02LIzrTL UpWsmwQxaCjVPSpuHBVaL0qAbZnTxpH1zmhDsKnJLZgOT79/K3KNA75yPslyr7Em7PJz GgEns1Q7/ny7CAS+LNpkTvj40laWzO/Yi5yfX07ZR6JvyVWCYUE+621iQTJMcPA12Qwk YFqV3Tjmer1KYdUhP4iOHPRw7lcw+aowu5SuV71J7R/11KWzjmiZb22WaMO0crmihNzJ TaKA== X-Gm-Message-State: AOAM533SIjmJL9sXF1ZVfypnhESA2w36OjCfwbNvMYlNJqw2LQorGKvm 3TEdHjbF9OiP0EWlFSN7nkI= X-Google-Smtp-Source: ABdhPJwnpX8AIGv5h69fLS+cPm2dDj6dz5oxgDfTlB/wrz3t/IOHD0mbQC6g4Veey8SDutD+yeJ7RQ== X-Received: by 2002:a1c:9cd3:: with SMTP id f202mr8677113wme.148.1602943370403; Sat, 17 Oct 2020 07:02:50 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Jiaxun Yang , Huacai Chen , Paul Burton , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Aurelien Jarno , Aleksandar Rikalo , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Luc Michel , Alistair Francis Subject: [PULL 01/44] util/cutils: Introduce freq_to_str() to display Hertz units Date: Sat, 17 Oct 2020 16:02:00 +0200 Message-Id: <20201017140243.1078718-2-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201017140243.1078718-1-f4bug@amsat.org> References: <20201017140243.1078718-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Introduce freq_to_str() to convert frequency values in human friendly units using the SI units for Hertz. Suggested-by: Luc Michel Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis Reviewed-by: Luc Michel Message-Id: <20201012095804.3335117-2-f4bug@amsat.org> --- include/qemu/cutils.h | 12 ++++++++++++ util/cutils.c | 14 ++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/include/qemu/cutils.h b/include/qemu/cutils.h index 3a86ec0321e..4bbf4834ea5 100644 --- a/include/qemu/cutils.h +++ b/include/qemu/cutils.h @@ -158,6 +158,18 @@ int qemu_strtosz_metric(const char *nptr, const char *= *end, uint64_t *result); =20 char *size_to_str(uint64_t val); =20 +/** + * freq_to_str: + * @freq_hz: frequency to stringify + * + * Return human readable string for frequency @freq_hz. + * Use SI units like KHz, MHz, and so forth. + * + * The caller is responsible for releasing the value returned + * with g_free() after use. + */ +char *freq_to_str(uint64_t freq_hz); + /* used to print char* safely */ #define STR_OR_NULL(str) ((str) ? (str) : "null") =20 diff --git a/util/cutils.c b/util/cutils.c index 8da34e04b0b..be4e43a9eff 100644 --- a/util/cutils.c +++ b/util/cutils.c @@ -885,6 +885,20 @@ char *size_to_str(uint64_t val) return g_strdup_printf("%0.3g %sB", (double)val / div, suffixes[i]); } =20 +char *freq_to_str(uint64_t freq_hz) +{ + static const char *const suffixes[] =3D { "", "K", "M", "G", "T", "P",= "E" }; + double freq =3D freq_hz; + size_t idx =3D 0; + + while (freq >=3D 1000.0 && idx < ARRAY_SIZE(suffixes)) { + freq /=3D 1000.0; + idx++; + } + + return g_strdup_printf("%0.3g %sHz", freq, suffixes[idx]); +} + int qemu_pstrcmp0(const char **str1, const char **str2) { return g_strcmp0(*str1, *str2); --=20 2.26.2