From patchwork Thu Nov 12 12:20:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ren=C3=A9_Scharfe?= X-Patchwork-Id: 11899907 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3727C388F7 for ; Thu, 12 Nov 2020 12:20:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 362CF22228 for ; Thu, 12 Nov 2020 12:20:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=web.de header.i=@web.de header.b="KBKGlHAT" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727976AbgKLMUb (ORCPT ); Thu, 12 Nov 2020 07:20:31 -0500 Received: from mout.web.de ([212.227.17.12]:59669 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727827AbgKLMUb (ORCPT ); Thu, 12 Nov 2020 07:20:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605183623; bh=f/l10ATK9WfQYBxooZriEcXjINxRzQtQS/Q/nvm69KA=; h=X-UI-Sender-Class:To:Cc:From:Subject:Date; b=KBKGlHATW30BHfupLpd+cUFyVR9yo6NIUg7kdgZ7JV0auTscr8G72gKDx+yLWIn4u kXipC2oe9mmDNrRN+Ev9yYM5i1CydgWYbinX0rgMRp1aQYssknQdqXdLkdFR/EUwRQ nKJYNlWV80fMAKTTv3BemvT+5ZZzjcIrT7E4rOiU= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from [192.168.178.26] ([79.203.17.45]) by smtp.web.de (mrweb102 [213.165.67.124]) with ESMTPSA (Nemesis) id 0LyUgM-1kGpgv1IRi-015pIt; Thu, 12 Nov 2020 13:20:23 +0100 X-Mozilla-News-Host: news://nntp.public-inbox.org:119 To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Derrick Stolee From: =?utf-8?q?Ren=C3=A9_Scharfe?= Subject: [PATCH 1/3] csum-file: add hashwrite_be64() Message-ID: <16932ced-8bcd-89bd-b927-cae1bce0365a@web.de> Date: Thu, 12 Nov 2020 13:20:19 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 Content-Language: en-US X-Provags-ID: V03:K1:qi+CSVVPmGMLnWckUJuSgSy+51RUwp/7VIitNHIv6JoNvVddk9d E7HgcQQiIX82C1igDEcyRC2I1YoMWodHHOT2oQwwBSuaAMAEHE2a5pK/n5Cc/LGzZdwX+Hg bMrlfOEdZzaXDhQ0x3yqhWOPJK95956XFVaEOaqY8qO2xB8D+v01gRwC+sKHUM3Vy57KT+M vqElTc9CxQVrPJSe4i3iA== X-UI-Out-Filterresults: notjunk:1;V03:K0:cYs86Se9f4A=:DVLpc+ny5fIjaZxFFH03O9 VF3Uedx0aajuxHcSZ4uQcSFWJjZjNkYyhxpCKDd9TTGCuiFCzvsB4rgLD1Lm5VRWIUPHztxkC tSwaZ/CbVMLwVnnshF3IkPWQCj3CjodaWvKqsr+87sV5IxQpdeXxSfYxmij8YtwOM5G1GtCLi oSCaj9QQGfZB8Ucxc5GmH3h8U41spD9HLCD5K2NN98spOJnht6eP8vb71ktfNpeWcCgk6cxuF IBl3FfteJdQjtSKYts1qEC4FWT08LQObID8KUQqxVzwX1uLi1ENrLwGm0dtSXq0m08iKsMpCr xCYuZpvRCDQWNj0OwzFu04DNux9wAbZEjLs4jJl1fCYyLTWVUFdF8E0pw6VQQpdlRzZhn1UaR VVFG2uquVzA/lHr9EhmvLJ/X/kB6CWHwRPWdgGRHdhhkSiiUJf4GqQ+rHSEe+fTTxy3s7htav JGokcDAJs3+ZIeSHodYa+NGswCvoKs0bVNSYrEpp6EbyJ7Gl39OrR6KcmYuK7a73b9EGaRzHG Ju89EaX16rDLqHrZAaKS/PA4RWS2ax1o+RiKe6C2xKpSUQswIkmkSEbU6rINF7ph8W64GDRCt F0NwRgNDXdohPpWN34erfaLDh8Bc5khFFshy9NBl5WAlhtfKK9h8iESClIlS3+8Xro8iHcZWY tVtbLJdOMk1rGfv2obfHZB0A2cYyEWRFd8TEArLuKhohZAkBqb/jITL95M0IY2t7aQvBJDYJY 2h8zhVNf/gkFvTz5wcyKi7FwKXG+DFRzTLVANoUbrPFPPS2r1UYHTpog1YMES84/4t93QNXh1 HC6waAGgp6fTDhASMKsHhmoBRLLlRzWy7Lzz9amPCdZFJIieAdpwCDQYDuuJzwn6ztzqGQ6ld 5N5a3r9NpFqpzw2MwCpQ== Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Add a helper function for hashing and writing 64-bit integers in network byte order. It returns the number of written bytes. This simplifies callers that keep track of the file offset, even though this number is a constant. Suggested-by: Derrick Stolee Original-patch-by: Taylor Blau Signed-off-by: René Scharfe --- csum-file.h | 7 +++++++ 1 file changed, 7 insertions(+) -- 2.29.2 diff --git a/csum-file.h b/csum-file.h index f9cbd317fb..e54d53d1d0 100644 --- a/csum-file.h +++ b/csum-file.h @@ -62,4 +62,11 @@ static inline void hashwrite_be32(struct hashfile *f, uint32_t data) hashwrite(f, &data, sizeof(data)); } +static inline size_t hashwrite_be64(struct hashfile *f, uint64_t data) +{ + data = htonll(data); + hashwrite(f, &data, sizeof(data)); + return sizeof(data); +} + #endif From patchwork Thu Nov 12 12:22:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ren=C3=A9_Scharfe?= X-Patchwork-Id: 11899909 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE777C2D0A3 for ; Thu, 12 Nov 2020 12:22:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 302F522228 for ; Thu, 12 Nov 2020 12:22:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=web.de header.i=@web.de header.b="ARmREpV1" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727611AbgKLMWY (ORCPT ); Thu, 12 Nov 2020 07:22:24 -0500 Received: from mout.web.de ([217.72.192.78]:33161 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726969AbgKLMWY (ORCPT ); Thu, 12 Nov 2020 07:22:24 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605183736; bh=3DmjWsXhrOG2ANEyzudvJa2jzGCS1QxLf+oW6EJLqYs=; h=X-UI-Sender-Class:Subject:From:To:Cc:References:Date:In-Reply-To; b=ARmREpV1mNInSbgRq2jjCSSTnCw/KEE5+L32YMzY5oF5k4yutl8DjEePgdB+LR2ge tLWMXZ+hTV8h2+RTbbxRPH7W7+QKQoras+AE3y/hAgtqKJ/+dl97sumwXh8OB1FLYt 4c92BVIh6EtFtuHEcSfbYNCRVwLjiwQcKGR4t4+E= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from [192.168.178.26] ([79.203.17.45]) by smtp.web.de (mrweb102 [213.165.67.124]) with ESMTPSA (Nemesis) id 0LlWGZ-1k3JAV2dWx-00bMwE; Thu, 12 Nov 2020 13:22:16 +0100 Subject: [PATCH 2/3] midx: use hashwrite_be64() From: =?utf-8?q?Ren=C3=A9_Scharfe?= To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Derrick Stolee References: <16932ced-8bcd-89bd-b927-cae1bce0365a@web.de> Message-ID: Date: Thu, 12 Nov 2020 13:22:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 In-Reply-To: <16932ced-8bcd-89bd-b927-cae1bce0365a@web.de> Content-Language: en-US X-Provags-ID: V03:K1:8Ai0HiMrURbhAp0PAojVMWuzVWeodad1vxFdFtMd0mUxH4nATTS Auz8IUfb2fZe78pqmWkVxybGaWTZu6JR18z/Bmsz8Oy6Er1psbfqEgvRgBj/paqzcsC5SrL Ib5N+Dt9dckmhPtUK4HhKxTtZE/0B0rJqcCHIg3KPdoDDqh7GAfOzMIZynJfnE75tm/VinU PtatR4BJfTmSN091o3lzw== X-UI-Out-Filterresults: notjunk:1;V03:K0:pzX1l9YkQjA=:6h5UIS9XBfub9Y/GloVXfF zU8ynuOBU/5KIh27/yrlurC0wx3JsAL4AXsYXYG+3noH5j4fYh2f/vKuCeChSY/DCWFb2iBR2 yBFu5bclmZNoZZ2GZ+pKncE7Wos6iwURI75bh2aN1IdzBT79rwCgZBad+hyJv4FOUguBuydq4 W1D3RIIvAXda5BEwBkSLiZg3wXLU6Jg3efneY3SFROpGHrpY4HoYdxbrnDUfLndzFa1eSsOyB gwO32k3iAeznzcjISNO/BrQxr6vpk7S0WT8A0etfCKBi2b30G3FdfJc4Ky2dvBa16HKqyPyep EkwGwViszhRTc6irbs4gtGCayWaQ3eF/BDCV/tuAJcH7kMo/8yq183kovJX18BNhpz3ywjYWV ZoYyL4BY+oEtoU1KRU96hwRwVUBhH/wm0xkJpZ77/BKumRjbIyputtqd27NS6YJqZbm+uJ36T f3LbeH6bm2syUyuY3AezsR3syuI40fPqdiK+OTBNthpr9O7C9XYe2SYVFuDuLap4piuobbT+2 R8kYOK/qifVQQz/Kkihg+8jOrn+sRQw7ETktWLjLOEmbdvrT7HgHgugk3fWHEtdFiOnyaRmm8 EUIdxC2eY5dSChDLRr7vuOZUdN6Qlwhrrn6f+ioo9B2bN22mYsnRypGCiP0MWRdLivPqpgJE6 8LkbRkYtwpkzkJ8An/MQxSI3KA4SqLS1msM7/V5qYsWl9WZzD3HW1TauYb/pucxrO3rwi4ha6 LxgeM7r4YzQ0DbJMZ+ZFSOXzCpAXuWvyTnzH42fZakeV91rp0eo9MgfXDCuNFSZep6BXNUyZp gBqRj6/CXKKhjyRTF7EZIxGO+1zzNAjpgbg0FaUHv7vOYw/N/ELz64tvKLY0wrSDv0l9WM1R4 f+J4ekJgFOqhj9RfcAJg== Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Call hashwrite_be64() to write 64-bit values instead of open-coding it using hashwrite_be32() and sizeof. This shortens the code and makes its intent clearer. Signed-off-by: René Scharfe --- And it saves me from headache induced by trying to remember whether "big endian" means that the most significant ("big") digit comes first (yes) or at the end, like the name suggests (no). midx.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) -- 2.29.2 diff --git a/midx.c b/midx.c index d233b54ac7..da03c1449a 100644 --- a/midx.c +++ b/midx.c @@ -785,9 +785,7 @@ static size_t write_midx_large_offsets(struct hashfile *f, uint32_t nr_large_off if (!(offset >> 31)) continue; - hashwrite_be32(f, offset >> 32); - hashwrite_be32(f, offset & 0xffffffffUL); - written += 2 * sizeof(uint32_t); + written += hashwrite_be64(f, offset); nr_large_offset--; } @@ -975,8 +973,7 @@ static int write_midx_internal(const char *object_dir, struct multi_pack_index * chunk_offsets[i]); hashwrite_be32(f, chunk_ids[i]); - hashwrite_be32(f, chunk_offsets[i] >> 32); - hashwrite_be32(f, chunk_offsets[i]); + hashwrite_be64(f, chunk_offsets[i]); written += MIDX_CHUNKLOOKUP_WIDTH; } From patchwork Thu Nov 12 12:23:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ren=C3=A9_Scharfe?= X-Patchwork-Id: 11899911 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2FB9C2D0A3 for ; Thu, 12 Nov 2020 12:23:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 63D9822228 for ; Thu, 12 Nov 2020 12:23:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=web.de header.i=@web.de header.b="dWXvjrYS" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728059AbgKLMXS (ORCPT ); Thu, 12 Nov 2020 07:23:18 -0500 Received: from mout.web.de ([212.227.17.12]:58663 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726969AbgKLMXS (ORCPT ); Thu, 12 Nov 2020 07:23:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605183791; bh=QjXuIZEQDYFyZHMsYSPplq964eMRCVRUwmEheCLYOjc=; h=X-UI-Sender-Class:Subject:From:To:Cc:References:Date:In-Reply-To; b=dWXvjrYS7hcPnN2Ifb4AGP91UjefcpFKwNwsvY5NDk6+Lz9SPrDbym5NGI+t41p1h htclGlSVFp9Ce1ODomEF2RD85i1fFkz15yB7KGVvxrYVMmmmpQ0RyNyzEYZzbvqiuB ZKs0evjmtFDCrVj7DGu5cqp7IKDfaBaeQe1DdCJQ= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from [192.168.178.26] ([79.203.17.45]) by smtp.web.de (mrweb101 [213.165.67.124]) with ESMTPSA (Nemesis) id 0Lkh7Q-1k31zv1HLo-00aXIh; Thu, 12 Nov 2020 13:23:11 +0100 Subject: [PATCH 3/3] pack-write: use hashwrite_be64() From: =?utf-8?q?Ren=C3=A9_Scharfe?= To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Derrick Stolee References: <16932ced-8bcd-89bd-b927-cae1bce0365a@web.de> Message-ID: <716c9fd8-273e-6bf6-ab67-1f589d2c9687@web.de> Date: Thu, 12 Nov 2020 13:23:10 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 In-Reply-To: <16932ced-8bcd-89bd-b927-cae1bce0365a@web.de> Content-Language: en-US X-Provags-ID: V03:K1:S/h1yCvS0Z80mMlC9TlJAm8rbtlIzj393CynmGhX4VI/pXAAkk8 OJsJOmPzdK45qMSN/wKwNOqKiO8cqc8rNnUwZMk2kMGqWhlzwq8ZGpJ9EMg86j29wlaI5tx uw2/bhJLFH7UjHI+yKrNBn4rP6qezDvd2NdntzCUFUuCePrJoWg0RiPC8xONN0myXwnSfLv UOr8vfHPpvNKTvRBczfwA== X-UI-Out-Filterresults: notjunk:1;V03:K0:21piSzHdJwI=:hqKjM1Jdm0uRapiGFML2jg 6PVdoju9xYHL6u1X/1g8yISw8jrqx1ceXbK836pF69Nf3bVbmZtHTTlVt1/7bcvbKBUm/uoW7 vJGR/HvdnO+X5SkwW1/LSuqd9CoBLBYpNuhg15nFfynT7EotHHOTl1YS7wzAnM3Z+oYASc+IH e+Mwz8aDyS8QlvIZs4xliipxpw1EJ5AeYDbs5XnFejWiIrzOQUpKoE/7nmMtg7fGrLNhNg3ft 84r7wghoRROLUzExWI1Ge9XrPeR7PJiJSm/dt37Ru1iDJ4Wz+n0mI8pUcAvUvYQY0KVGEVPwa 336/DXuHqHb22tyzO0L/9c/16ttjdpUVpiIECqkcJSgg+t19eKO7e9o+RJA+RWwgwuRnoDAqW Q3dbrWwg45sTI8VLZz7E/L6zkwyTqYWvyENC1ZrsuPwggEN1vMVjK2xYgyRohDPeSEfZ17glF Z/Qw2/BJfAPd9u+IKJnM5cOx5NpiCd23PJcpH12j7YprBkvn0a2wXDz002qKIAAaFwoSGBBZM cKx0mCToKrfPr2Vj/sVvoGbFubw5zypumk6bTbrgQwsLXXPVA6ZiaOmA6ILhSkDya8ArzX7e7 wP1iI+OhbnxIqNn8DOMLQ05ARXAoxxrV+8z6ywziCZewg7zoO8wKVycWrr9nMmA4HVtQ/g7y5 U5ekTM6gebbShTO16Jj4f6g/aOWJco9491fIzgVrKu9RGx+UO6zkynzMiWy+lX0B6tvygs31p 1EWU3L2bk0LnYP+NzyztzrTVPljP86M9lWKjToZwoMOQSpHifitC/9gs7cpdFvrCKg88beahr waThPEMFlXvFTtm7BkzNUwKu6QS59SR6l5CheR4kS58ZOvPqekfGyPTmL0FBcIsAs7mS4H+bf 5V6QAQAKQ14gYhDUDmLA== Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Call hashwrite_be64() to write a 64-bit value instead of open-coding it using htonl() and hashwrite(). This shortens the code, gets rid of a buffer and several magic numbers, and makes the intent clearer. Signed-off-by: René Scharfe --- pack-write.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) -- 2.29.2 diff --git a/pack-write.c b/pack-write.c index 23e19cc1ec..3513665e1e 100644 --- a/pack-write.c +++ b/pack-write.c @@ -151,13 +151,10 @@ const char *write_idx_file(const char *index_name, struct pack_idx_entry **objec while (nr_large_offset) { struct pack_idx_entry *obj = *list++; uint64_t offset = obj->offset; - uint32_t split[2]; if (!need_large_offset(offset, opts)) continue; - split[0] = htonl(offset >> 32); - split[1] = htonl(offset & 0xffffffff); - hashwrite(f, split, 8); + hashwrite_be64(f, offset); nr_large_offset--; } }