OSDN Git Service

x86/entry/x32: Rename __x32_compat_sys_* to __x64_compat_sys_*
[uclinux-h8/linux.git] / arch / x86 / entry / syscalls / syscalltbl.sh
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3
4 in="$1"
5 out="$2"
6
7 syscall_macro() {
8     local abi="$1"
9     local nr="$2"
10     local entry="$3"
11
12     echo "__SYSCALL_${abi}($nr, $entry)"
13 }
14
15 emit() {
16     local abi="$1"
17     local nr="$2"
18     local entry="$3"
19     local compat="$4"
20
21     if [ "$abi" != "I386" -a -n "$compat" ]; then
22         echo "a compat entry ($abi: $compat) for a 64-bit syscall makes no sense" >&2
23         exit 1
24     fi
25
26     if [ -z "$compat" ]; then
27         if [ -n "$entry" ]; then
28             syscall_macro "$abi" "$nr" "$entry"
29         fi
30     else
31         echo "#ifdef CONFIG_X86_32"
32         if [ -n "$entry" ]; then
33             syscall_macro "$abi" "$nr" "$entry"
34         fi
35         echo "#else"
36         syscall_macro "$abi" "$nr" "$compat"
37         echo "#endif"
38     fi
39 }
40
41 grep '^[0-9]' "$in" | sort -n | (
42     while read nr abi name entry compat; do
43         abi=`echo "$abi" | tr '[a-z]' '[A-Z]'`
44         emit "$abi" "$nr" "$entry" "$compat"
45     done
46 ) > "$out"