[tip:x86/syscall] x86: Simplify syscallhdr.sh

From: tip-bot for H. Peter Anvin
Date: Fri Nov 18 2011 - 19:34:53 EST


Commit-ID: f14525f9e033f344996905744f41680ea2b877ce
Gitweb: http://git.kernel.org/tip/f14525f9e033f344996905744f41680ea2b877ce
Author: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
AuthorDate: Fri, 18 Nov 2011 16:03:27 -0800
Committer: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
CommitDate: Fri, 18 Nov 2011 16:03:27 -0800

x86: Simplify syscallhdr.sh

Simplify syscallhdr.sh by letting grep sort out the ABIs that we want,
rather than relying on manual list matching. This is safe since the
ABI strings already have to consist only of characters which are valid in C
macro names.

Suggested-by: Matt Helsley <matthltc@xxxxxxxxxx>
Link: http://lkml.kernel.org/r/20111118221558.GA6408@xxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
---
arch/x86/syscalls/syscallhdr.sh | 19 +++----------------
1 files changed, 3 insertions(+), 16 deletions(-)

diff --git a/arch/x86/syscalls/syscallhdr.sh b/arch/x86/syscalls/syscallhdr.sh
index 0d473ff..b3c5930 100644
--- a/arch/x86/syscalls/syscallhdr.sh
+++ b/arch/x86/syscalls/syscallhdr.sh
@@ -2,33 +2,20 @@

in="$1"
out="$2"
-my_abis=`echo "$3" | tr ',' ' '`
+my_abis=`echo "($3)" | tr ',' '|'`
prefix="$4"
offset="$5"

fileguard=_ASM_X86_`basename "$out" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
-
-in_list () {
- local x
- for x in $1; do
- if [ x"$x" = x"$2" ]; then
- return 0
- fi
- done
- return 1
-}
-
-grep '^[0-9]' "$in" | sort -n | (
+grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
echo "#ifndef ${fileguard}"
echo "#define ${fileguard} 1"
echo ""

while read nr abi name entry ; do
- if in_list "$my_abis" "$abi"; then
- echo "#define __NR_${prefix}${name}" $((nr+offset))
- fi
+ echo "#define __NR_${prefix}${name}" $((nr+offset))
done

echo ""
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/