diff options
Diffstat (limited to 'scripts/syscalltbl.sh')
| -rwxr-xr-x | scripts/syscalltbl.sh | 18 | 
1 files changed, 16 insertions, 2 deletions
diff --git a/scripts/syscalltbl.sh b/scripts/syscalltbl.sh index 6abe143889ef..6a903b87a7c2 100755 --- a/scripts/syscalltbl.sh +++ b/scripts/syscalltbl.sh @@ -54,7 +54,7 @@ nxt=0  grep -E "^[0-9]+[[:space:]]+$abis" "$infile" | { -	while read nr abi name native compat ; do +	while read nr abi name native compat noreturn; do  		if [ $nxt -gt $nr ]; then  			echo "error: $infile: syscall table is not sorted or duplicates the same syscall number" >&2 @@ -66,7 +66,21 @@ grep -E "^[0-9]+[[:space:]]+$abis" "$infile" | {  			nxt=$((nxt + 1))  		done -		if [ -n "$compat" ]; then +		if [ "$compat" = "-" ]; then +			unset compat +		fi + +		if [ -n "$noreturn" ]; then +			if [ "$noreturn" != "noreturn" ]; then +				echo "error: $infile: invalid string \"$noreturn\" in 'noreturn' column" +				exit 1 +			fi +			if [ -n "$compat" ]; then +				echo "__SYSCALL_COMPAT_NORETURN($nr, $native, $compat)" +			else +				echo "__SYSCALL_NORETURN($nr, $native)" +			fi +		elif [ -n "$compat" ]; then  			echo "__SYSCALL_WITH_COMPAT($nr, $native, $compat)"  		elif [ -n "$native" ]; then  			echo "__SYSCALL($nr, $native)"  |