Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp3501814imm; Sun, 14 Oct 2018 22:13:17 -0700 (PDT) X-Google-Smtp-Source: ACcGV61P+wJglShYsu25xJvKDtyFc9b17Oxm19mnQ0vOuwzI8mVXzG4QYUiebodH2znhcXycfH6O X-Received: by 2002:a62:e80c:: with SMTP id c12-v6mr16265147pfi.124.1539580397548; Sun, 14 Oct 2018 22:13:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539580397; cv=none; d=google.com; s=arc-20160816; b=GbljzTu4IIQLz3i6OUecn+zbX4XUhDupXSfU1lKavbmClvadG5Lz8oOowqL44tYW0e zYsj/JA6jZno1Ms60++dM1NbJbQlbADhsc0IkHOs8oWBtAxSKujoKSALayU+mr8psE2E 5WzvoQ1jKkqoMFxjT8on77Nzyldj1NVYxCGiXfhp1uhDsNw4vI8d6uzhTGtC6i9NwfOO sgBIB6/ko9cziZ+JEI1Myq8eS02hhsUYuC+7D74k3szgspxcywL9nqfYmKONV73Livfk LH6MeigkSWujhsk5o+Wj6o8i5vOe5OfP9K0kUxxMh1l8u+8/GFQJ7L0kFJ9R/Q2M+u0z +fqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=OzLx9svj9e+xo59LjiZy1h2emoOjD0YaaRGDH5d9hAk=; b=0mPXs1mpxn0DzmIVXxgp+KeuYpzSEG40MSUpIiCpqy6gJ+bQgshSLdSeP7htnkZXvp PukTrzpcpOB4fZOnKouZAgBdxalfdm74lu6qAM7xMv0ytSWugIXt5KplGcf822GattAG 9T89phrgnnnfeGKrDbfa6VVyr+WW68O34XLj1pscGih8apHQgguvZWRt+Ty1+imzrJK9 /kwrw022BKSxrp8kSBd2HUlXqLb9amD/rBA/B7xsgxY3rLkz7FUUbqJrpa+0dG/VRCUa T1IkFetXCr/lhqMeFvzS219Am9mHRMalVhbF+9/nB2LBfoAjX4H7Zo8/t05ShnmMGSJa UvuQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=MUc4MMci; 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 f1-v6si4793537plt.48.2018.10.14.22.13.01; Sun, 14 Oct 2018 22:13:17 -0700 (PDT) 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=MUc4MMci; 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 S1726632AbeJOM4Q (ORCPT + 99 others); Mon, 15 Oct 2018 08:56:16 -0400 Received: from mail-yb1-f193.google.com ([209.85.219.193]:37211 "EHLO mail-yb1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726400AbeJOM4P (ORCPT ); Mon, 15 Oct 2018 08:56:15 -0400 Received: by mail-yb1-f193.google.com with SMTP id h1-v6so7034573ybm.4 for ; Sun, 14 Oct 2018 22:12:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OzLx9svj9e+xo59LjiZy1h2emoOjD0YaaRGDH5d9hAk=; b=MUc4MMciRN2E4RqNwbFVtr84p9iEhatfgTuhzEhczEJZOhM9AzWKKSDtqTtmrx9us1 BVw3QIHb/eTGT2hTvOiZNVQivdfZZZqNwUT17Vq8PvCnm89ki796AbLledBnH6QfhWvL RcYFE+zcnhLLo7yHE1ng5djtdTkBhCeCun28o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OzLx9svj9e+xo59LjiZy1h2emoOjD0YaaRGDH5d9hAk=; b=C1lcidXddqHLRdVd1l4yADmNv27xizZYAnyYCCdovbxvB+C5sItuFCPK57JmEXCXL8 XCTmOHj+bDJF/LoLHnHiCngJ2iPNGVx3qTW9jfhV4CuOYTyfmCKPh0Mjik3T62qdzttC OFByZNmKASeBE02rd2AwIsHNTVAS3GwxzciUsgWfYsorX+t1GpMgcPvreF3EsieHfqDQ Ubvwa9aY26v7apVP6UrPFikEHG2RZ0EraT/JyJIwjoAF3CoT8bH3XNZgNjVcOweFFAt1 WZYovs3BqYA4N7boK4uBxKpUXmp7Ic/+4PfBns94WityxLBuebZBLXdaeXaVAjo1dDq0 cGkQ== X-Gm-Message-State: ABuFfohbYcT+OXI9964jx/N8cl4c8yE3xbnNWXtm9Sdc3UrXEFOM7CCr dc2MwDihQlXObfoVyy0IsWdafocOcF442dxlCsz2xw== X-Received: by 2002:a25:a063:: with SMTP id x90-v6mr8796156ybh.174.1539580358614; Sun, 14 Oct 2018 22:12:38 -0700 (PDT) MIME-Version: 1.0 References: <1539337442-3676-1-git-send-email-firoz.khan@linaro.org> <1539337442-3676-4-git-send-email-firoz.khan@linaro.org> <20181014010658.GB717@asgard.redhat.com> In-Reply-To: <20181014010658.GB717@asgard.redhat.com> From: Firoz Khan Date: Mon, 15 Oct 2018 10:42:27 +0530 Message-ID: Subject: Re: [PATCH v4 3/6] parisc: add system call table generation support To: esyr@redhat.com Cc: linux-parisc@vger.kernel.org, "James E . J . Bottomley" , Helge Deller , Thomas Gleixner , Greg Kroah-Hartman , Philippe Ombredanne , Kate Stewart , y2038 Mailman List , Linux Kernel Mailing List , Linux-Arch , Arnd Bergmann , Deepa Dinamani , Marcin Juszkiewicz Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Eugene, On Sun, 14 Oct 2018 at 06:36, Eugene Syromiatnikov wrote: > > On Fri, Oct 12, 2018 at 03:13:59PM +0530, Firoz Khan wrote: > > diff --git a/arch/parisc/kernel/syscalls/syscall.tbl b/arch/parisc/kernel/syscalls/syscall.tbl > > new file mode 100644 > > index 0000000..7c9f268 > > > +86 common uselib sys_ni_syscall > > Again, why is this definition left, while others have been removed? The system call generation script will generate new uapi and syscall table files and replace the existed one. We'll make sure the generated file against replaced one will be identical. uselib is declared in uapi header: https://github.com/torvalds/linux/blob/master/arch/parisc/include/uapi/asm/unistd.h#L103 So I have to make sure this entry is present in the generated uapi header. > > > +348 common pwritev2 sys_pwritev2 compat_sys_pwritev2 > > +349 common statx sys_statx > > +350 common io_pgetevents sys_io_pgetevents compat_sys_io_pgetevents > > Tab instead of spaces. I'm using emacs editor with default settings. In the actual file, there is no indentation problem which I find but if I get patch using git format-patch, it has inconsistent indentation. No idea. I could find the same problem in other patches also. Let me use the vi editor to save the file and get the patch. > > > diff --git a/arch/parisc/kernel/syscalls/syscallhdr.sh b/arch/parisc/kernel/syscalls/syscallhdr.sh > > new file mode 100644 > > index 0000000..607d4ca > > --- /dev/null > > +++ b/arch/parisc/kernel/syscalls/syscallhdr.sh > > @@ -0,0 +1,35 @@ > > +#!/bin/sh > > /bin/sh -efu > > > +# SPDX-License-Identifier: GPL-2.0 > > "export LANG=C", due to usage of sed/grep/sort. I got this frame work from x86/entry/syscalls; https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/syscallhdr.sh I haven't modified the script but I tune this script to meet my requirements. Sure, I'll look into this. > > > + > > +in="$1" > > +out="$2" > > +my_abis=`echo "($3)" | tr ',' '|'` > > +prefix="$4" > > +offset="$5" > > + > > +fileguard=_UAPI_ASM_PARISC_`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 | ( > > grep -E '^[[:xdigit:]Xx]+[[:space:]]+'"${my_abis}" "$in" > sort -n -k1,1 > > > + echo "#ifndef ${fileguard}" > > + echo "#define ${fileguard}" > > + echo "" > > cat <<-EOF > #ifndef ${fileguard} > #define ${fileguard} > > EOF > > > + > > + nxt=0 > > + while read nr abi name entry compat ; do > > + if [ -z "$offset" ]; then > > + echo -e "#define __NR_${prefix}${name}\t$nr" > > + else > > + echo -e "#define __NR_${prefix}${name}\t($offset + $nr)" > > + fi > > echo options are not portable; something like > > printf "#define __NR_%s%s\t(%s + %s)" "${prefix}" "${name}" "${offset}" "${nr}" x86/armhas similar echo implementation. https://github.com/torvalds/linux/blob/master/arch/arm/tools/syscallhdr.sh s390 has this printf implemenation. https://github.com/torvalds/linux/blob/master/arch/s390/kernel/syscalls/syscalltbl I chose echo one. but it is easy to change to printf :) > > > + nxt=$nr > > + let nxt=nxt+1 > > "let" is a bash extension, posix-conformant expression would be > > nxt=$((nr + 1)) > > (I would also check that nr >= nxt, however) Sure. > > > + done > > + > > + echo "" > > + echo "#ifdef __KERNEL__" > > + echo -e "#define __NR_syscalls\t$nxt" > > + echo "#endif" > > + echo "" > > + echo "#endif /* ${fileguard} */" > > cat <<-EOF > > #ifdef __KERNEL__ > # define __NR_syscalls\t${nxt} > #endif > > #endif /* ${fileguard} */ > EOF > > > +) > "$out" > > diff --git a/arch/parisc/kernel/syscalls/syscalltbl.sh b/arch/parisc/kernel/syscalls/syscalltbl.sh > > new file mode 100644 > > index 0000000..04abde7 > > --- /dev/null > > +++ b/arch/parisc/kernel/syscalls/syscalltbl.sh > > @@ -0,0 +1,46 @@ > > +#!/bin/sh > > +# SPDX-License-Identifier: GPL-2.0 > > + > > +in="$1" > > +out="$2" > > +my_abis=`echo "($3)" | tr ',' '|'` > > +offset="$4" > > + > > +emit() { > > + nxt="$1" > > + if [ -z "$offset" ]; then > > + nr="$2" > > + else > > + nr="$2" > > + nr=$((nr+offset)) > > + fi > > + entry="$3" > > + > > + while [ $nxt -lt $nr ]; do > > It would break nicely if nxt="-n x -o 1" or something like that. > > > + echo "__SYSCALL($nxt, sys_ni_syscall, )" > > + let nxt=nxt+1 > > + done > > + echo "__SYSCALL($nxt, $entry, )" > > +} > > + > > +grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( > > + if [ -z "$offset" ]; then > > + nxt=0 > > + else > > + nxt=$offset > > + fi > > + > > + my_abi="$(cut -d'|' -f2 <<< $my_abis)" > > my_abi="${my_abis#*|}" > > But it looks like that $my_abis includes parentheses and this code > is broken. I may planned to have some different implementation for the same. > > > + while read nr abi name entry compat ; do > > + if [ $my_abi = "compat" ]; then > > + if [ -z "$compat" ]; then > > + emit $nxt $nr $entry > > + else > > + emit $nxt $nr $compat > > + fi > > + else > > + emit $nxt $nr $entry > > + fi > > + let nxt=nxt+1 > > + done > > +) > "$out" Thanks Firoz > > -- > > 1.9.1 > >