From nobody Fri Nov 7 09:10:09 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1537284959994992.8213755431009; Tue, 18 Sep 2018 08:35:59 -0700 (PDT) Received: from localhost ([::1]:40882 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g2I2S-0001qP-Sb for importer@patchew.org; Tue, 18 Sep 2018 11:35:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37367) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g2HxG-00077z-Lm for qemu-devel@nongnu.org; Tue, 18 Sep 2018 11:30:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g2HxF-00040h-AV for qemu-devel@nongnu.org; Tue, 18 Sep 2018 11:30:22 -0400 Received: from mail-sn1nam01on0107.outbound.protection.outlook.com ([104.47.32.107]:28492 helo=NAM01-SN1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1g2HxD-0003aG-GX; Tue, 18 Sep 2018 11:30:21 -0400 Received: from Jupiter.local (141.226.29.227) by CO2PR07MB2614.namprd07.prod.outlook.com (2603:10b6:102:14::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.15; Tue, 18 Sep 2018 15:30:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janustech.onmicrosoft.com; s=selector1-janustech-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4ITiwPXiA0wzJuGRlzkcYaBkfzpPyrSztH1TkFh7aDQ=; b=S1a70Gp34JJ3d1FoKaRGHTNYDq0gTolqmR4aij1eQ+lS/wqZuF8ejzg3hW80zY5YOml5FjEZdm0BRAkxUEp51eaqqPWh6TVyBuqoSjK5SZEX+qo+Wga5XZIvsg7gQR0chMuZTySgpmeuIH+/D6+6o801wAhuVkDDVHTs52r9IW4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=lbloch@janustech.com; From: Leonid Bloch To: qemu-devel@nongnu.org Date: Tue, 18 Sep 2018 18:29:16 +0300 Message-Id: <20180918152923.24824-3-lbloch@janustech.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180918152923.24824-1-lbloch@janustech.com> References: <20180918152923.24824-1-lbloch@janustech.com> MIME-Version: 1.0 X-Originating-IP: [141.226.29.227] X-ClientProxiedBy: AM5PR0701CA0016.eurprd07.prod.outlook.com (2603:10a6:203:51::26) To CO2PR07MB2614.namprd07.prod.outlook.com (2603:10b6:102:14::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 57bee09e-6537-499d-b9dd-08d61d7b9cc2 X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(7021125)(8989299)(4534165)(7022125)(4603075)(4627221)(201702281549075)(8990200)(7048125)(7024125)(7027125)(7023125)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:CO2PR07MB2614; X-Microsoft-Exchange-Diagnostics: 1; CO2PR07MB2614; 3:w+7lNQ5hlPmAN3pszOSEeiPxF8DMfuW5geUza1Unaz/b0asBsO5cFnNOrotTeoq4gtYs2/rR+KxrXV7/0RKlnC4NK2GgkDFHnLrOTEt0Bwqizgg5BlGCO93B67RcuFsmvFMm6pcIZjVD9ToPknu9q/BP+PHRAx5ZaSV7Sq2SbqXvDI+F0CXOs9E9PmdKxCbymQlPgJ+3McwRtmMa7JBB+0rlqcVfi7v/fKYuUl0u0X0BxQR0+Pa1IlYQYq1NTGDd; 25:8z5nymw669DHkBZegp2NjMNhvzq4IyD2qHtwht16TS8BLcZSvyt7L1tElXjVzAFAFbwTN3FCMgszWY0dIhDM8uYnGkTvfj1UVXjaj7qwX78qYJQjin1BV5bbixHe3IXKTT+4IpBH4WAn0sB/ggW8AMP4lfnLs80XPKTCar/V9w1HVULxIjH9Cv2zC1mHDXXm3I2JLNMhY/z4kinblMWEtfVTQZNaLN593ocHszcEG19ymFtyiJDsjA0us01EhDFlSKpRrT0KCWdoptdkJgth/4LghG2gLF9XNx9SC7u0W6mkGqScKBV/bZvhVE0tHmGdooGP4/s/g4a8gF6sFsmJrA==; 31:DGfS17IwHuM4BZPFM58YxMhL1QcfQ0ph/UHQiOuVRf6UP8pp3r7y8MZngJYF/+cB5AnJGsA3DTI9wjYTXd5DCNIZlas6KvcrhGcn8+T9HeIugan1JZ1UG73nMzQa4Q26V/D4RzLMYvVsIczdg9NugIOfsP5HttRNMmgjc5Tq3y3j1sOp54OPeLEg/cYmP3N536QSLlJO5etzAU4wQiJiHxVI/y/dZ2mIIH2hKB6ueAQ= X-MS-TrafficTypeDiagnostic: CO2PR07MB2614: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(3231355)(944501410)(52105095)(10201501046)(149027)(150027)(6041310)(20161123560045)(20161123562045)(20161123558120)(2016111802025)(20161123564045)(6043046)(201708071742011)(7699050); SRVR:CO2PR07MB2614; BCL:0; PCL:0; RULEID:; SRVR:CO2PR07MB2614; X-Microsoft-Exchange-Diagnostics: 1; CO2PR07MB2614; 4:H187O4ekUtIOnXkKYLgPtC+cCBTip/FMby7TLAYmQiLGXag+iu7tvOZtrnw2WG1F54msiWQHjZlDIewGLLGFVnHkxh1BVLtESn2wxpfK2d+fxgFUwLkqHK/LZEe3X6vHUTSigpCvPRzGPvXCBxyKCKdnYA9Cs4ewFA5LzFfZUFDRNW/46I+dL5i/R6ruC10kpVljdeNa7HY0WK+9d9VFAvuDy7F0yYD2wpZ3RpmPYFvTGyWw8asjPp1ym0GyBcLypT7/yVRRuWfWabFqRfpNJA== X-Forefront-PRVS: 0799B1B2D7 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(136003)(39830400003)(366004)(376002)(396003)(346002)(199004)(189003)(386003)(956004)(47776003)(36756003)(66066001)(6666003)(68736007)(53936002)(5660300001)(6916009)(486006)(6486002)(8676002)(305945005)(8936002)(81166006)(81156014)(16586007)(54906003)(16526019)(446003)(476003)(316002)(11346002)(2616005)(186003)(6116002)(6512007)(7736002)(105586002)(52116002)(50466002)(86362001)(76176011)(26005)(6506007)(97736004)(106356001)(50226002)(25786009)(48376002)(4326008)(107886003)(2351001)(2361001)(3846002)(508600001)(51416003)(2906002)(1076002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR07MB2614; H:Jupiter.local; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: janustech.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO2PR07MB2614; 23:jCyETJYkyagerUD78K2sDiC9L3hrvGvyoIlXiTjtg?= =?us-ascii?Q?leZFJ/tUrImyhOn8zfLL4r0JjRy+N/0+H6l+rsU1SV20FsVO6zOh1Iz5ouql?= =?us-ascii?Q?jJw6msb0J/OJOVTqCntc5N9hfi9FPSnVoOSXkexFLJ0fBlIRmsQ/ZPVFLZ4e?= =?us-ascii?Q?RWDeOI9M8iHM62rkiaUikgw8+kmrmmgRybUhfy2wYclFxf8wL83S2JZSUZbO?= =?us-ascii?Q?WrIdT0/VQlJzjS3qIkWKTZyUY3DfgbejHGqxRDoJzlzt6VxMMt/Dq228T0Uf?= =?us-ascii?Q?I86GIU7b+rsde1M5qqSXjqcCQjSCC2KazYxAQK9B5v5j5yffjXjAK6mC+iTv?= =?us-ascii?Q?ZV2hJnK+EoBkZl2Cknrx/JBzXH3qgttNfmoUhFfepOTDILX9gPJYfZAEHL4W?= =?us-ascii?Q?HDIWSzO8t65/iLQpqGeXX6pflYmjqwj9oI+rssqolomq6cwIsd5FfBs3tUNk?= =?us-ascii?Q?8Y0XnRnutWoLAetVhhgAMQpzV4o7h3EehjDs8aggocp+6eTdwdKQXC7NV0g3?= =?us-ascii?Q?FaINizQ8MJnUDN2vnCzAZRosXimFpN3C8jWpmbeyH5l95IpgXVgz2jS0GOyt?= =?us-ascii?Q?KzUMCcmUlufDW+oqrQ4PeS47bqX2+tp/DQWg08dwRS0aaIyDsaAPcZJzkR/2?= =?us-ascii?Q?XC9JMZ7+fHgnNuqwD4EwWxFfJ/wG02MU1eSTobww+05N6+jrlTL7M7eUxwst?= =?us-ascii?Q?0Qip6ftumHvSUidxt8NYOSp5pYmXFrFFzAKbXtJtWvtF27mqm4Uqc2vHvEYc?= =?us-ascii?Q?HSB5oLR4HZwXvx1LGCjSLSId/prmnz907DWxtfjdejzI9AnoDC35jXZ9Covn?= =?us-ascii?Q?NXOH7kQC/Aj5gRpK6hgUBH7ugKYgjkBSF/IlMrfxug0BioMrrrOUczE3jmL8?= =?us-ascii?Q?ZsExhthQ/U0vK64p2NnxAqjy31dIZZ0OZSoZMPYJYgx7ikbDguB6GOqBv35A?= =?us-ascii?Q?l+t7yP5BD1SwYpZTtiW08Sn++OQpqqBfYKnPyrsq5uQbU7N6Eh6hnQrNP+2n?= =?us-ascii?Q?JrrF7jjRCbpoimOovUoUG8hYAUkjZB2dojyGS//nctccPdYpPBYMAg1wF8jA?= =?us-ascii?Q?pSdIJ8+XzoPSRfKhC/6LFbpbSYS+gyOu/ntGERzFIIMocGFsVuvCTqEq6jMc?= =?us-ascii?Q?9Haunekz3D/6BKa2EPrzjRYHrTp4/gyvB0PWbCMkf5lT4U43Ry3yE2LvuwOx?= =?us-ascii?Q?R76Y3Q+JiUZmSOJffDNx7+1Id9DpAXGQUqtbNZD6C4O3Pniy/RGW57Vva59b?= =?us-ascii?Q?N4bpMY4eGO8r1qofRQ2zcJJRywHZvzKzflE85sE?= X-Microsoft-Antispam-Message-Info: 3uvpI9m5u1C8tNQDuT/dTSmxeek9feR5mOtN4aClrtwuijaC5ON2QmGLIGRvvtWuqlJAAUF3CQPG9NlUe4+3ZIvX0WDkQRczzStLP7jVNQBC1AUTwnS78XmdOkdMQGUI50UoKXpeCVeaB1OVU1QQj3uxNEvb3fnfAhJPrC/SAZcqDuXluFYpRdJFcwVEB+pOT1AxZqq/ZgWUqXbna/RhKnfYtE3Y9uVd2khOcO7Oo7vwbyOWMUJ/Ujm8MCCF3eTYW46rpsxVHRC/zHTtZvRB6yUktas8/cRVWdPlbEj6OKkJy3qhBL4ntf5lVkxuafCQkb1AL2ocmJAWPnsJMlTcznchMnJ4xvUEA9/KetKNX7o= X-Microsoft-Exchange-Diagnostics: 1; CO2PR07MB2614; 6:bz2JUtVax3azBvwFEBTFaSR2qdpAMQRfHjHY9p806fHhm2cF+SPTs1FzRq0MwzNKLe4TCn3MrgUF4AA3VvExlgENduYm8kYIo1sSc3shIZmYK7ZJsXdQx+GheQhmpxA7NRZdDAQe3W0xMSyWcoG6/rQnKqJfZsCXxmDpQ8nkH/LhsO8dcc0cczGZ2JdyG+P8kxvUoo5wz8akrHb2/i6Fu5iKdAppmFPPKaGRdgUNPDqtcB/u5dr//2szSmOLtAq6PO2qxn0RljBR7WY6ItHWxImlYtU9S0GjfHthuyvz6QAYO6DJDy6yDA11hSpMa25799osvCDDWhTSuJfoydP/dSyegi41vAb1Utrhwz8ZRkn0zlqKKr5576jMCThPx3p2JEo3xbx2uRfPGpSjwgpGmz6Fx1yrJVmXiYO3vNY5FHeAyc6ZELI6oa8gmtTtCk7YVZkQfL+jfJv+03BhDozYVw==; 5:DvpwTelcC5O5MIlSXYVO1a1LFCGDzcfMratPVRflnqvBHEYTMEO+Nnop7J5skf/tYUUE+250BC8lCmRCNj686U5zbUhJ1+P7VuhOnlKrdSWLQaLhieDDmPOuaNjUQVebUoRdK9w2k4JkL01aTnadMAjbfwlAPZu50E/HhPTcTxk=; 7:170QIJAL6yBoqJpazaTFVf9CUXqyNIHr0OMDyQgzocfNT/MwS2zD3BjkbH4NRarSLsrkcasjV1iJ+EJSqWgpTG97oI9ZgYQKsa1OobGC9KGypU0wLz8QhgUJ+U7YXOlLw2pRlT5fuiDjsdCWPlKOp9vLxsccWOCQcDOITIRkSS5xGN3NRBljXk+V3eaFzid32sNeI8Gsqw/J2GWzAN9WYwalhi57uGd+O1YFFEGdctjKrA+nQX8JCnwEprXjgPkQ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: janustech.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2018 15:30:04.8237 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 57bee09e-6537-499d-b9dd-08d61d7b9cc2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 34eb020e-3cf3-43a1-afeb-f5cf1310628e X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR07MB2614 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.107 Subject: [Qemu-devel] [PATCH v9 2/9] include: Add a lookup table of sizes X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Alberto Garcia , qemu-block@nongnu.org, Max Reitz , Leonid Bloch Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Adding a lookup table for the powers of two, with the appropriate size prefixes. This is needed when a size has to be stringified, in which case something like '(1 * KiB)' would become a literal '(1 * (1L << 10))' string. Powers of two are used very often for sizes, so such a table will also make it easier and more intuitive to write them. This table is generatred using the following AWK script: BEGIN { suffix=3D"KMGTPE"; for(i=3D10; i<64; i++) { val=3D2**i; s=3Dsubstr(suffix, int(i/10), 1); n=3D2**(i%10); pad=3D21-int(log(n)/log(10)); printf("#define S_%d%siB %*d\n", n, s, pad, val); } } Signed-off-by: Leonid Bloch --- include/qemu/units.h | 55 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/include/qemu/units.h b/include/qemu/units.h index 692db3fbb2..68a7758650 100644 --- a/include/qemu/units.h +++ b/include/qemu/units.h @@ -17,4 +17,59 @@ #define PiB (INT64_C(1) << 50) #define EiB (INT64_C(1) << 60) =20 +#define S_1KiB 1024 +#define S_2KiB 2048 +#define S_4KiB 4096 +#define S_8KiB 8192 +#define S_16KiB 16384 +#define S_32KiB 32768 +#define S_64KiB 65536 +#define S_128KiB 131072 +#define S_256KiB 262144 +#define S_512KiB 524288 +#define S_1MiB 1048576 +#define S_2MiB 2097152 +#define S_4MiB 4194304 +#define S_8MiB 8388608 +#define S_16MiB 16777216 +#define S_32MiB 33554432 +#define S_64MiB 67108864 +#define S_128MiB 134217728 +#define S_256MiB 268435456 +#define S_512MiB 536870912 +#define S_1GiB 1073741824 +#define S_2GiB 2147483648 +#define S_4GiB 4294967296 +#define S_8GiB 8589934592 +#define S_16GiB 17179869184 +#define S_32GiB 34359738368 +#define S_64GiB 68719476736 +#define S_128GiB 137438953472 +#define S_256GiB 274877906944 +#define S_512GiB 549755813888 +#define S_1TiB 1099511627776 +#define S_2TiB 2199023255552 +#define S_4TiB 4398046511104 +#define S_8TiB 8796093022208 +#define S_16TiB 17592186044416 +#define S_32TiB 35184372088832 +#define S_64TiB 70368744177664 +#define S_128TiB 140737488355328 +#define S_256TiB 281474976710656 +#define S_512TiB 562949953421312 +#define S_1PiB 1125899906842624 +#define S_2PiB 2251799813685248 +#define S_4PiB 4503599627370496 +#define S_8PiB 9007199254740992 +#define S_16PiB 18014398509481984 +#define S_32PiB 36028797018963968 +#define S_64PiB 72057594037927936 +#define S_128PiB 144115188075855872 +#define S_256PiB 288230376151711744 +#define S_512PiB 576460752303423488 +#define S_1EiB 1152921504606846976 +#define S_2EiB 2305843009213693952 +#define S_4EiB 4611686018427387904 +#define S_8EiB 9223372036854775808 + #endif --=20 2.17.1