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@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>
This commit is contained in:
H. Peter Anvin 2011-11-18 16:03:27 -08:00
parent 303395ac3b
commit f14525f9e0

View 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 ""