From patchwork Wed Jan 2 15:28:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Firoz Khan X-Patchwork-Id: 154666 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp292675ljp; Wed, 2 Jan 2019 07:29:25 -0800 (PST) X-Google-Smtp-Source: ALg8bN7osGa6Pkzhq+JKOVBOKApG8PgoaEeF9UgZh3HyB3lWhx7A3rBgYBJpwHzqOMWr7GyJ2HFs X-Received: by 2002:a63:dd55:: with SMTP id g21mr13589572pgj.86.1546442965720; Wed, 02 Jan 2019 07:29:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546442965; cv=none; d=google.com; s=arc-20160816; b=z1EPdguI2fLYF6FcW7HPPL+3H60Zy1ZaKpwpuPmQteIEvQsQ1AqivT1X6m5pxKfmJS 4FAvDRLaSFIYrBf/vZCHCDTgN5dPy44VSxBzwQjs2BHyk1C2obBqqvAc5Y8/T3iD+q7u 7NTkKcbeE/SlicguKCEHtpwUNLC0vGsrVzmcMBddvN9LJXH/+L8V5P3jU/xOTE+62QEH x7cY0HbDHwLDtrm/LuM/QySk1FJXEsZxMiXP54d9stdWN8eSbBENZxi8fUlaL63BcK3X /Fi4+/VQbLVCRJAy4rbgmR1VSrRu/30qYq/x02QM1ocv8XXzjpph5uiLND8PaFpjHqNw wYyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=myGiGPFYzEzo3ceYJtj1+5n7XmY861E8tGq+s31tnXA=; b=OiB4wZAqqeHjCHpcs401uoSfBgq3GJKlFe12KWpFvbqA4S+pESEGZnMUEczEGkn+m1 f412k3wWsyirTpOLmIewqjjVEwFhygGgc36/y+dWYY4kZpgtm7abM04iti4LCCvYf9x6 PIooeDOKWIyVqX4rvy9M881H0AAbXhbAYRwSFC8+LPn45kuKPGCT7CyQmByDqMvLsckE yHpHj6glsP7QqXuo9KWTJa8xZxVhzy7YFvdEjywXdr/OWpceO5h2HUbObCgt/yToaIj3 5vX9DZ09wc0gkJw+csehXeyOxc/vlF1W3nRlAuKDT89sPeQventosCT32jiTCZ4dB5ks qZ5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QC8VEHME; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r14si9530927pfh.229.2019.01.02.07.29.25; Wed, 02 Jan 2019 07:29:25 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QC8VEHME; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730152AbfABP3X (ORCPT + 31 others); Wed, 2 Jan 2019 10:29:23 -0500 Received: from mail-pl1-f194.google.com ([209.85.214.194]:44785 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730137AbfABP3W (ORCPT ); Wed, 2 Jan 2019 10:29:22 -0500 Received: by mail-pl1-f194.google.com with SMTP id e11so14630072plt.11 for ; Wed, 02 Jan 2019 07:29:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=myGiGPFYzEzo3ceYJtj1+5n7XmY861E8tGq+s31tnXA=; b=QC8VEHMElJnlDDPtKVmbXwhtKQ8Xxe/7/+6XLmYHwJPcOwskfIZHyggVVl5gURJ5+0 3gY+0RgpiHio56Z6sYWWsTHq9aDLP9I9aXiBpIdcFzICrFZJ7cnjTtiX0KBEjwfNVdAL FIZaheFYrOX6ILzPP4iPpmh7eqtnJkvLFDL6o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=myGiGPFYzEzo3ceYJtj1+5n7XmY861E8tGq+s31tnXA=; b=StGvtghbxQWKQ8iv0r5WNMyIlkdzSYN8WvYxMua2U7RA+YBodjYAERUDFsndOHVfJR ErWwZDyxk3gjB2I5lA7yzp7Y9o5bPjzHc4s2bx/KwbevvGf8PmJSlG3aDJAYMpmd4Rru 6FE6dh5CFfSTaqkm8ajNsPQucMenLjm8RNQg4Oj/sSuQOnMx+3IfzBdmrrALj2pkOza/ pdnjzNh8NrXyVz8TrWN5NlayybZoprYjY8GXS8PSXbpWHoO7xBZJUn1Uji3cUz8ax3ZG wLXQbwEZMfUM03Es7/lkqPgC7+koc/vklUzNfcHCAFT2A9BKNxeFco0xcR3iEoTF5pV3 hPaQ== X-Gm-Message-State: AJcUukf3YaHAqKFiUJs+VaXLPMcHAlhuyLtMxb7DzropBVNs0V48Uhl6 hYS53sZH+mYkjlDBf4sUd8zZfQ== X-Received: by 2002:a17:902:b01:: with SMTP id 1mr44490225plq.331.1546442961658; Wed, 02 Jan 2019 07:29:21 -0800 (PST) Received: from qualcomm-HP-ZBook-14-G2.qualcomm.com (blr-bdr-fw-01_globalnat_allzones-outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id k191sm63030673pgd.9.2019.01.02.07.29.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 02 Jan 2019 07:29:21 -0800 (PST) From: Firoz Khan To: Chris Zankel , Max Filippov , Dominik Brodowski , linux-xtensa@linux-xtensa.org, Greg Kroah-Hartman , Philippe Ombredanne , Thomas Gleixner , Kate Stewart Cc: y2038@lists.linaro.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, arnd@arndb.de, deepa.kernel@gmail.com, marcin.juszkiewicz@linaro.org, firoz.khan@linaro.org Subject: [PATCH 1/2] xtensa: remove nargs from __SYSCALL Date: Wed, 2 Jan 2019 20:58:31 +0530 Message-Id: <1546442912-20818-2-git-send-email-firoz.khan@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1546442912-20818-1-git-send-email-firoz.khan@linaro.org> References: <1546442912-20818-1-git-send-email-firoz.khan@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The __SYSCALL macro's arguments are system call number, system call entry name and number of arguments for the system call. Argument- nargs in __SYSCALL(nr, entry, nargs) is neither calculated nor used anywhere. So it would be better to keep the implementaion as __SYSCALL(nr, entry). This will unifies the implementation with some other architetures too. Signed-off-by: Firoz Khan --- arch/xtensa/kernel/syscall.c | 2 +- arch/xtensa/kernel/syscalls/syscalltbl.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) -- 1.9.1 Acked-by: Max Filippov Acked-by: Max Filippov diff --git a/arch/xtensa/kernel/syscall.c b/arch/xtensa/kernel/syscall.c index 2c415fc..0665339 100644 --- a/arch/xtensa/kernel/syscall.c +++ b/arch/xtensa/kernel/syscall.c @@ -31,7 +31,7 @@ syscall_t sys_call_table[__NR_syscalls] /* FIXME __cacheline_aligned */= { [0 ... __NR_syscalls - 1] = (syscall_t)&sys_ni_syscall, -#define __SYSCALL(nr, entry, nargs)[nr] = (syscall_t)entry, +#define __SYSCALL(nr, entry)[nr] = (syscall_t)entry, #include #undef __SYSCALL }; diff --git a/arch/xtensa/kernel/syscalls/syscalltbl.sh b/arch/xtensa/kernel/syscalls/syscalltbl.sh index 85d78d9..904b8e6 100644 --- a/arch/xtensa/kernel/syscalls/syscalltbl.sh +++ b/arch/xtensa/kernel/syscalls/syscalltbl.sh @@ -13,10 +13,10 @@ emit() { t_entry="$3" while [ $t_nxt -lt $t_nr ]; do - printf "__SYSCALL(%s, sys_ni_syscall, )\n" "${t_nxt}" + printf "__SYSCALL(%s,sys_ni_syscall)\n" "${t_nxt}" t_nxt=$((t_nxt+1)) done - printf "__SYSCALL(%s, %s, )\n" "${t_nxt}" "${t_entry}" + printf "__SYSCALL(%s,%s)\n" "${t_nxt}" "${t_entry}" } grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( From patchwork Wed Jan 2 15:28:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Firoz Khan X-Patchwork-Id: 154667 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp292733ljp; Wed, 2 Jan 2019 07:29:30 -0800 (PST) X-Google-Smtp-Source: AFSGD/Xs7+DqLTewbH6I1iGPD4+8V6Psk9MQSHx77fZ8fVm+1rkvFAY/0QG4dUXO9QXRBKG3c8CL X-Received: by 2002:a62:2082:: with SMTP id m2mr43984648pfj.163.1546442970325; Wed, 02 Jan 2019 07:29:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546442970; cv=none; d=google.com; s=arc-20160816; b=f2QUlI1dOreIrnZ5A6PpMCrbPMrus0mL7BVCsVfwKACUHiOas6YjlETY6ML3d+y6Xw OO/ZOXikkUBhS4cjXS2l6NG0wJN1aWMADxUHoze5soNF9NiwrLk1fzryi2cc4iCzSDVL fzCghum7gSC/LbYYlmWd5HEH039+ioDVTNdgeczvtH8I3xyaDVMmWT2TB7CcvUz+m96k IVQRvAqrmYUi7FnBqMmP0QTIIiTcD1qIfctuYfVLWTHrNStmBkpW0Z5WlzY7mH63HjEI YsvZB4bXdSt4SL4uDc9A0h43N/EPAJGw4ipJ5s5NM/x9FDnsXoFi4bwPpmd3kk5tXyJS oNnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=m6wIvAqQqDtOsFm5HOdbf9JHds76mwQFop2PYsMwmMA=; b=s7gTKkL1VeSzWij3hSPjBTFMtmx/ygKF+PpBQgwRS0S8Ajtd9AjUSzTeqXr4i205xZ fon2liKHa28norq+OIWPGoupNF5V5eT7vtm2rhg59c+0lAZMjktWWnOvNVaqK5kgHx0M jGur5OoX1A8NovLLnOx4keGjAqeqeFuZjA4E/polPqe8R45N2q+H1/fmJUC/JdScvjb3 /ksQrnDjhFvsFkOYTM5tStIbiWUnrfY4cxpfB7OLazL10pY9ATWZYPJdp+t2BuqMWOIQ nDbn1zY868Z8OIPTcR2ASZ+d5VV/AcDaJgWAVD+LQMZ6FX3vbJz7wp6h9yiQyovUKt4U RwPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LQYHljM0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i6si7791559plt.290.2019.01.02.07.29.30; Wed, 02 Jan 2019 07:29:30 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=LQYHljM0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730165AbfABP32 (ORCPT + 31 others); Wed, 2 Jan 2019 10:29:28 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:43917 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729844AbfABP31 (ORCPT ); Wed, 2 Jan 2019 10:29:27 -0500 Received: by mail-pf1-f195.google.com with SMTP id w73so15304246pfk.10 for ; Wed, 02 Jan 2019 07:29:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=m6wIvAqQqDtOsFm5HOdbf9JHds76mwQFop2PYsMwmMA=; b=LQYHljM0j+ny4Prhby73BH7YD/wqcNb3RCXf+Up1Nb7Qzbf8P35hlM96zEj2z/UM4i lVm3QvMVF/fyKKG63yFUng9t2qUBaD5be+VK5SpirgY0t6i6Q1P7y+1UqpfNoVC/2AtV X9n3p/JH7RU2vOyIP7canqy0OwMptNZN8s4kE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=m6wIvAqQqDtOsFm5HOdbf9JHds76mwQFop2PYsMwmMA=; b=iFeh8S4nIBPkMTaZbt+geiE2iSax5bsQ4dljZ9dA/DYmyTL6kNJ47/+ThtYJmLwOZO 1GmU7XJ5Am6tmql4IIchCrRO6spVFmO+Ff7K7NSxLYuMuydtR3wT5lehdKBWUU7LA7NA sytP35K9wl+flWjBziLusRZiZZwCSnbMmOqm7CCyZFL5MKBsqX44ihss9Pe3S8AiBT6D 449dJEPg6WFJj6LvoNXhu/IVg0sdZ1sXc6WFqGoWeYVoJd+v3JOnC2l6AXBWMnGfkhOP YEbfzezAo7UrKxjKeD7KHItXu2Q05hSCEqXkFapjhEmvcapO4p0xW6FriY4EN7fqduGh Vayw== X-Gm-Message-State: AJcUukePOiQglWjYxX4aWc7YqCx5jcJSh3Sms8KEosFvt4Ha7v+NGUiz C9x2IEVuwBQiid7r25LrY4LNjQ== X-Received: by 2002:a63:de04:: with SMTP id f4mr13662948pgg.292.1546442966126; Wed, 02 Jan 2019 07:29:26 -0800 (PST) Received: from qualcomm-HP-ZBook-14-G2.qualcomm.com (blr-bdr-fw-01_globalnat_allzones-outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id k191sm63030673pgd.9.2019.01.02.07.29.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 02 Jan 2019 07:29:25 -0800 (PST) From: Firoz Khan To: Chris Zankel , Max Filippov , Dominik Brodowski , linux-xtensa@linux-xtensa.org, Greg Kroah-Hartman , Philippe Ombredanne , Thomas Gleixner , Kate Stewart Cc: y2038@lists.linaro.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, arnd@arndb.de, deepa.kernel@gmail.com, marcin.juszkiewicz@linaro.org, firoz.khan@linaro.org Subject: [PATCH 2/2] xtensa: generate uapi header and syscall table header files Date: Wed, 2 Jan 2019 20:58:32 +0530 Message-Id: <1546442912-20818-3-git-send-email-firoz.khan@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1546442912-20818-1-git-send-email-firoz.khan@linaro.org> References: <1546442912-20818-1-git-send-email-firoz.khan@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Unified system call table generation script must be run to generate unistd_32.h and syscall_table.h files. This patch will have changes which will invokes the script. This patch will generate unistd_32.h and syscall_table.h files by the syscall table generation script invoked by xtensa/Makefile and the generated files against the removed files must be identical. The generated uapi header file will be included in uapi/- asm/unistd.h and generated system call table header file will be included by kernel/syscall.c file. Signed-off-by: Firoz Khan --- arch/xtensa/kernel/syscalls/Makefile | 11 ++++++++-- arch/xtensa/kernel/syscalls/syscallhdr.sh | 36 ------------------------------- arch/xtensa/kernel/syscalls/syscalltbl.sh | 32 --------------------------- 3 files changed, 9 insertions(+), 70 deletions(-) delete mode 100644 arch/xtensa/kernel/syscalls/syscallhdr.sh delete mode 100644 arch/xtensa/kernel/syscalls/syscalltbl.sh -- 1.9.1 diff --git a/arch/xtensa/kernel/syscalls/Makefile b/arch/xtensa/kernel/syscalls/Makefile index 659faef..75c7421 100644 --- a/arch/xtensa/kernel/syscalls/Makefile +++ b/arch/xtensa/kernel/syscalls/Makefile @@ -6,8 +6,9 @@ _dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \ $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)') syscall := $(srctree)/$(src)/syscall.tbl -syshdr := $(srctree)/$(src)/syscallhdr.sh -systbl := $(srctree)/$(src)/syscalltbl.sh +syshdr := $(srctree)/scripts/syscallhdr.sh +sysnr := $(srctree)/scripts/syscallnr.sh +systbl := $(srctree)/scripts/syscalltbl.sh quiet_cmd_syshdr = SYSHDR $@ cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \ @@ -15,6 +16,12 @@ quiet_cmd_syshdr = SYSHDR $@ '$(syshdr_pfx_$(basetarget))' \ '$(syshdr_offset_$(basetarget))' +quiet_cmd_sysnr = SYSNR $@ + cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@' \ + '$(sysnr_abis_$(basetarget))' \ + '$(sysnr_pfx_$(basetarget))' \ + '$(sysnr_offset_$(basetarget))' + quiet_cmd_systbl = SYSTBL $@ cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \ '$(systbl_abis_$(basetarget))' \ diff --git a/arch/xtensa/kernel/syscalls/syscallhdr.sh b/arch/xtensa/kernel/syscalls/syscallhdr.sh deleted file mode 100644 index d37db64..0000000 --- a/arch/xtensa/kernel/syscalls/syscallhdr.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: GPL-2.0 - -in="$1" -out="$2" -my_abis=`echo "($3)" | tr ',' '|'` -prefix="$4" -offset="$5" - -fileguard=_UAPI_ASM_XTENSA_`basename "$out" | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ - -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'` -grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( - printf "#ifndef %s\n" "${fileguard}" - printf "#define %s\n" "${fileguard}" - printf "\n" - - nxt=0 - while read nr abi name entry ; do - if [ -z "$offset" ]; then - printf "#define __NR_%s%s\t%s\n" \ - "${prefix}" "${name}" "${nr}" - else - printf "#define __NR_%s%s\t(%s + %s)\n" \ - "${prefix}" "${name}" "${offset}" "${nr}" - fi - nxt=$((nr+1)) - done - - printf "\n" - printf "#ifdef __KERNEL__\n" - printf "#define __NR_syscalls\t%s\n" "${nxt}" - printf "#endif\n" - printf "\n" - printf "#endif /* %s */" "${fileguard}" -) > "$out" diff --git a/arch/xtensa/kernel/syscalls/syscalltbl.sh b/arch/xtensa/kernel/syscalls/syscalltbl.sh deleted file mode 100644 index 904b8e6..0000000 --- a/arch/xtensa/kernel/syscalls/syscalltbl.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: GPL-2.0 - -in="$1" -out="$2" -my_abis=`echo "($3)" | tr ',' '|'` -my_abi="$4" -offset="$5" - -emit() { - t_nxt="$1" - t_nr="$2" - t_entry="$3" - - while [ $t_nxt -lt $t_nr ]; do - printf "__SYSCALL(%s,sys_ni_syscall)\n" "${t_nxt}" - t_nxt=$((t_nxt+1)) - done - printf "__SYSCALL(%s,%s)\n" "${t_nxt}" "${t_entry}" -} - -grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( - nxt=0 - if [ -z "$offset" ]; then - offset=0 - fi - - while read nr abi name entry ; do - emit $((nxt+offset)) $((nr+offset)) $entry - nxt=$((nr+1)) - done -) > "$out"