^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) #!/bin/sh
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) in="$1"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) out="$2"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) my_abis=`echo "($3)" | tr ',' '|'`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) align=1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) fileguard=_ASM_ARM_`basename "$out" | sed \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | tail -n1 | (
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) echo "#ifndef ${fileguard}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define ${fileguard} 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) * This needs to be greater than __NR_last_syscall+1 in order to account
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) * for the padding in the syscall table.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) while read nr abi name entry; do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) nr=$(($nr + 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) while [ "$(($nr / (256 * $align) ))" -gt 0 ]; do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) align=$(( $align * 4 ))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) done
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) nr=$(( ($nr + $align - 1) & ~($align - 1) ))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) echo "/* aligned to $align */"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) echo "#define __NR_syscalls $nr"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) done
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) echo ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) echo "#endif /* ${fileguard} */"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) ) > "$out"