forked from Minki/linux
b34b98204c
You do not need to pass the abi parameter to syscallnr.sh because it parses all the lines of syscall.tbl except comments anyway. Simplify the code. Also, remove unneeded single-quoting. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
34 lines
843 B
Bash
34 lines
843 B
Bash
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
in="$1"
|
|
out="$2"
|
|
align=1
|
|
|
|
fileguard=_ASM_ARM_`basename "$out" | sed \
|
|
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
|
|
-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
|
|
|
|
grep -E "^[0-9A-Fa-fXx]+[[:space:]]+" "$in" | sort -n | tail -n1 | (
|
|
echo "#ifndef ${fileguard}
|
|
#define ${fileguard} 1
|
|
|
|
/*
|
|
* This needs to be greater than __NR_last_syscall+1 in order to account
|
|
* for the padding in the syscall table.
|
|
*/
|
|
"
|
|
|
|
while read nr abi name entry; do
|
|
nr=$(($nr + 1))
|
|
while [ "$(($nr / (256 * $align) ))" -gt 0 ]; do
|
|
align=$(( $align * 4 ))
|
|
done
|
|
nr=$(( ($nr + $align - 1) & ~($align - 1) ))
|
|
echo "/* aligned to $align */"
|
|
echo "#define __NR_syscalls $nr"
|
|
done
|
|
|
|
echo ""
|
|
echo "#endif /* ${fileguard} */"
|
|
) > "$out"
|