aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2011-11-18 19:03:27 -0500
committerH. Peter Anvin <hpa@linux.intel.com>2011-11-18 19:03:27 -0500
commitf14525f9e033f344996905744f41680ea2b877ce (patch)
treed0032eff3c737dd93264d5a1ef24bdc6c6a85db2 /arch
parent303395ac3bf3e2cb488435537d416bc840438fcb (diff)
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/syscalls/syscallhdr.sh19
1 files changed, 3 insertions, 16 deletions
diff --git a/arch/x86/syscalls/syscallhdr.sh b/arch/x86/syscalls/syscallhdr.sh
index 0d473ff12eaf..b3c593072785 100644
--- a/arch/x86/syscalls/syscallhdr.sh
+++ b/arch/x86/syscalls/syscallhdr.sh
@@ -2,33 +2,20 @@
2 2
3in="$1" 3in="$1"
4out="$2" 4out="$2"
5my_abis=`echo "$3" | tr ',' ' '` 5my_abis=`echo "($3)" | tr ',' '|'`
6prefix="$4" 6prefix="$4"
7offset="$5" 7offset="$5"
8 8
9fileguard=_ASM_X86_`basename "$out" | sed \ 9fileguard=_ASM_X86_`basename "$out" | sed \
10 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ 10 -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
11 -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'` 11 -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
12 12grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
13in_list () {
14 local x
15 for x in $1; do
16 if [ x"$x" = x"$2" ]; then
17 return 0
18 fi
19 done
20 return 1
21}
22
23grep '^[0-9]' "$in" | sort -n | (
24 echo "#ifndef ${fileguard}" 13 echo "#ifndef ${fileguard}"
25 echo "#define ${fileguard} 1" 14 echo "#define ${fileguard} 1"
26 echo "" 15 echo ""
27 16
28 while read nr abi name entry ; do 17 while read nr abi name entry ; do
29 if in_list "$my_abis" "$abi"; then 18 echo "#define __NR_${prefix}${name}" $((nr+offset))
30 echo "#define __NR_${prefix}${name}" $((nr+offset))
31 fi
32 done 19 done
33 20
34 echo "" 21 echo ""