Messages in this thread | | | Date | Fri, 18 Nov 2011 14:15:58 -0800 | From | Matt Helsley <> | Subject | Re: [PATCH 6/8] x86: Machine-readable syscall tables and scripts to process them |
| |
On Thu, Nov 17, 2011 at 02:37:24PM -0800, H. Peter Anvin wrote:
<snip>
> diff --git a/arch/x86/syscalls/syscallhdr.sh b/arch/x86/syscalls/syscallhdr.sh > new file mode 100644 > index 0000000..0d473ff > --- /dev/null > +++ b/arch/x86/syscalls/syscallhdr.sh > @@ -0,0 +1,36 @@ > +#!/bin/sh > + > +in="$1" > +out="$2" > +my_abis=`echo "$3" | tr ',' ' '`
I think you can remove in_list() and just use grep to get your selected abis:
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 "^[0-9]$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
nanoscale nit: whitespace
> + done
And finally this becomes:
while read nr abi name entry ; do echo "#define __NR_${prefix}${name}" $((nr+offset)) done
| |