x86: Simplify syscallhdr.sh
authorH. Peter Anvin <hpa@linux.intel.com>
Sat, 19 Nov 2011 00:03:27 +0000 (16:03 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Sat, 19 Nov 2011 00:03:27 +0000 (16:03 -0800)
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@us.ibm.com>
Link: http://lkml.kernel.org/r/20111118221558.GA6408@count0.beaverton.ibm.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/syscalls/syscallhdr.sh

index 0d473ff12eaf8ed29bfb208ba3870550e90f4f0b..b3c5930727856b680b4266dccb183190992600a1 100644 (file)
@@ -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 ""