xref: /OK3568_Linux_fs/kernel/arch/x86/entry/syscalls/syscallhdr.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
3*4882a593Smuzhiyun
4*4882a593Smuzhiyunin="$1"
5*4882a593Smuzhiyunout="$2"
6*4882a593Smuzhiyunmy_abis=`echo "($3)" | tr ',' '|'`
7*4882a593Smuzhiyunprefix="$4"
8*4882a593Smuzhiyunoffset="$5"
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunfileguard=_ASM_X86_`basename "$out" | sed \
11*4882a593Smuzhiyun    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
12*4882a593Smuzhiyun    -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
13*4882a593Smuzhiyungrep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
14*4882a593Smuzhiyun    echo "#ifndef ${fileguard}"
15*4882a593Smuzhiyun    echo "#define ${fileguard} 1"
16*4882a593Smuzhiyun    echo ""
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun    max=0
19*4882a593Smuzhiyun    while read nr abi name entry ; do
20*4882a593Smuzhiyun	if [ -z "$offset" ]; then
21*4882a593Smuzhiyun	    echo "#define __NR_${prefix}${name} $nr"
22*4882a593Smuzhiyun	else
23*4882a593Smuzhiyun	    echo "#define __NR_${prefix}${name} ($offset + $nr)"
24*4882a593Smuzhiyun        fi
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	max=$nr
27*4882a593Smuzhiyun    done
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun    echo ""
30*4882a593Smuzhiyun    echo "#ifdef __KERNEL__"
31*4882a593Smuzhiyun    echo "#define __NR_${prefix}syscall_max $max"
32*4882a593Smuzhiyun    echo "#endif"
33*4882a593Smuzhiyun    echo ""
34*4882a593Smuzhiyun    echo "#endif /* ${fileguard} */"
35*4882a593Smuzhiyun) > "$out"
36