qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 02/21] linux-user, alpha: add syscall table generation sup


From: Richard Henderson
Subject: Re: [PATCH v3 02/21] linux-user, alpha: add syscall table generation support
Date: Fri, 28 Feb 2020 20:44:34 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1

On 2/25/20 4:15 AM, Laurent Vivier wrote:
> Copy syscall.tbl and syscallhdr.sh from linux/arch/alpha/kernel/syscalls v5.5
> Update syscallhdr.sh to generate QEMU syscall_nr.h
> 
> Signed-off-by: Laurent Vivier <address@hidden>
> ---
>  configure                      |   3 +-
>  linux-user/Makefile.objs       |   2 +
>  linux-user/alpha/Makefile.objs |   5 +
>  linux-user/alpha/syscall.tbl   | 479 ++++++++++++++++++++++++++++++++
>  linux-user/alpha/syscall_nr.h  | 492 ---------------------------------
>  linux-user/alpha/syscallhdr.sh |  32 +++
>  6 files changed, 520 insertions(+), 493 deletions(-)
>  create mode 100644 linux-user/alpha/Makefile.objs
>  create mode 100644 linux-user/alpha/syscall.tbl
>  delete mode 100644 linux-user/alpha/syscall_nr.h
>  create mode 100644 linux-user/alpha/syscallhdr.sh


Reviewed-by: Richard Henderson <address@hidden>

> +++ b/linux-user/alpha/syscallhdr.sh
> @@ -0,0 +1,32 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0
> +
> +in="$1"
> +out="$2"
> +my_abis=`echo "($3)" | tr ',' '|'`
> +prefix="$4"
> +offset="$5"
> +
> +fileguard=LINUX_USER_ALPHA_`basename "$out" | sed \
> +    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
> +    -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
> +grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
> +    printf "#ifndef %s\n" "${fileguard}"
> +    printf "#define %s\n" "${fileguard}"
> +    printf "\n"
> +
> +    nxt=0
> +    while read nr abi name entry ; do
> +        if [ -z "$offset" ]; then
> +            printf "#define TARGET_NR_%s%s\t%s\n" \
> +                "${prefix}" "${name}" "${nr}"
> +        else
> +            printf "#define TARGET_NR_%s%s\t(%s + %s)\n" \
> +                "${prefix}" "${name}" "${offset}" "${nr}"
> +        fi
> +        nxt=$((nr+1))
> +    done
> +
> +    printf "\n"
> +    printf "#endif /* %s */" "${fileguard}"
> +) > "$out"
> 

Not an objection per-se, but why does every target need its own copy of this
script?  There appears to be only the fileguard that differs between these.

Could we have a common script for the common cases?


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]