[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH v4 27/29] Hexagon (linux-user/hexagon) Linux user emulati
From: |
Laurent Vivier |
Subject: |
Re: [RFC PATCH v4 27/29] Hexagon (linux-user/hexagon) Linux user emulation |
Date: |
Mon, 28 Sep 2020 23:02:59 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
Le 28/09/2020 à 19:28, Taylor Simpson a écrit :
> Implementation of Linux user emulation for Hexagon
> Some common files modified in addition to new files in linux-user/hexagon
>
> Signed-off-by: Taylor Simpson <tsimpson@quicinc.com>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> ---
> linux-user/hexagon/sockbits.h | 18 ++
> linux-user/hexagon/syscall_nr.h | 343
> ++++++++++++++++++++++++++++++++++++
> linux-user/hexagon/target_cpu.h | 44 +++++
> linux-user/hexagon/target_elf.h | 40 +++++
> linux-user/hexagon/target_fcntl.h | 18 ++
> linux-user/hexagon/target_signal.h | 34 ++++
> linux-user/hexagon/target_structs.h | 46 +++++
> linux-user/hexagon/target_syscall.h | 36 ++++
> linux-user/hexagon/termbits.h | 18 ++
> linux-user/qemu.h | 2 +
> linux-user/syscall_defs.h | 33 ++++
> linux-user/elfload.c | 16 ++
> linux-user/hexagon/cpu_loop.c | 99 +++++++++++
> linux-user/hexagon/signal.c | 276 +++++++++++++++++++++++++++++
> linux-user/hexagon/meson.build | 22 +++
> linux-user/meson.build | 1 +
> scripts/gensyscalls.sh | 3 +-
> 17 files changed, 1048 insertions(+), 1 deletion(-)
> create mode 100644 linux-user/hexagon/sockbits.h
> create mode 100644 linux-user/hexagon/syscall_nr.h
> create mode 100644 linux-user/hexagon/target_cpu.h
> create mode 100644 linux-user/hexagon/target_elf.h
> create mode 100644 linux-user/hexagon/target_fcntl.h
> create mode 100644 linux-user/hexagon/target_signal.h
> create mode 100644 linux-user/hexagon/target_structs.h
> create mode 100644 linux-user/hexagon/target_syscall.h
> create mode 100644 linux-user/hexagon/termbits.h
> create mode 100644 linux-user/hexagon/cpu_loop.c
> create mode 100644 linux-user/hexagon/signal.c
> create mode 100644 linux-user/hexagon/meson.build
>
...
> diff --git a/linux-user/hexagon/meson.build b/linux-user/hexagon/meson.build
> new file mode 100644
> index 0000000..7158e52
> --- /dev/null
> +++ b/linux-user/hexagon/meson.build
> @@ -0,0 +1,22 @@
> +##
> +## Copyright(c) 2020 Qualcomm Innovation Center, Inc. All Rights Reserved.
> +##
> +## This program is free software; you can redistribute it and/or modify
> +## it under the terms of the GNU General Public License as published by
> +## the Free Software Foundation; either version 2 of the License, or
> +## (at your option) any later version.
> +##
> +## This program is distributed in the hope that it will be useful,
> +## but WITHOUT ANY WARRANTY; without even the implied warranty of
> +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +## GNU General Public License for more details.
> +##
> +## You should have received a copy of the GNU General Public License
> +## along with this program; if not, see <http://www.gnu.org/licenses/>.
> +##
> +
> +syscall_nr_generators += {
> + 'hexagon': generator(sh,
> + arguments: [ 'cat', 'syscall_nr.h', '>', '@OUTPUT@' ],
> + output: '@BASENAME@_nr.h')
Why do we need that?
The syscall_nr_generators is used to generate syscall_nr.h from syscall.tbl
> +}
> diff --git a/linux-user/meson.build b/linux-user/meson.build
> index 2b94e4b..8b1dfc8 100644
> --- a/linux-user/meson.build
> +++ b/linux-user/meson.build
> @@ -22,6 +22,7 @@ syscall_nr_generators = {}
>
> subdir('alpha')
> subdir('arm')
> +subdir('hexagon')
so you don't need that either
> subdir('hppa')
> subdir('i386')
> subdir('m68k')
> diff --git a/scripts/gensyscalls.sh b/scripts/gensyscalls.sh
> index b7b8456..e2ee60a 100755
> --- a/scripts/gensyscalls.sh
> +++ b/scripts/gensyscalls.sh
> @@ -53,7 +53,7 @@ read_includes()
>
> filter_defines()
> {
> - grep -e "#define __NR_" -e "#define __NR3264"
> + grep -e "#define __NR_" -e "#define __NR3264" | grep -v __NR_syscalls
Why do you remove __NR_syscalls?
> }
>
> rename_defines()
> @@ -99,4 +99,5 @@ generate_syscall_nr openrisc 32
> "$output/linux-user/openrisc/syscall_nr.h"
>
> generate_syscall_nr riscv 32 "$output/linux-user/riscv/syscall32_nr.h"
> generate_syscall_nr riscv 64 "$output/linux-user/riscv/syscall64_nr.h"
> +generate_syscall_nr hexagon 32 "$output/linux-user/hexagon/syscall_nr.h"
Please, move this line to the previous block (that generates
syscall_nr.h and not syscallXX_nr.h)
> rm -fr "$TMP"
>
Thanks,
Laurent
- Re: [RFC PATCH v4 15/29] Hexagon (target/hexagon) utility functions, (continued)
- [RFC PATCH v4 29/29] Hexagon build infrastructure, Taylor Simpson, 2020/09/28
- [RFC PATCH v4 18/29] Hexagon (target/hexagon) generator phase 2 - generate header files, Taylor Simpson, 2020/09/28
- [RFC PATCH v4 16/29] Hexagon (target/hexagon/imported) arch import, Taylor Simpson, 2020/09/28
- [RFC PATCH v4 21/29] Hexagon (target/hexagon) opcode data structures, Taylor Simpson, 2020/09/28
- [RFC PATCH v4 25/29] Hexagon (target/hexagon) TCG for instructions with multiple definitions, Taylor Simpson, 2020/09/28
- [RFC PATCH v4 24/29] Hexagon (target/hexagon) TCG generation, Taylor Simpson, 2020/09/28
- [RFC PATCH v4 26/29] Hexagon (target/hexagon) translation, Taylor Simpson, 2020/09/28
- [RFC PATCH v4 27/29] Hexagon (linux-user/hexagon) Linux user emulation, Taylor Simpson, 2020/09/28
- Re: [RFC PATCH v4 27/29] Hexagon (linux-user/hexagon) Linux user emulation,
Laurent Vivier <=
- [RFC PATCH v4 28/29] Hexagon (tests/tcg/hexagon) TCG tests, Taylor Simpson, 2020/09/28
- Re: [RFC PATCH v4 00/29] Hexagon patch series, no-reply, 2020/09/28
- Re: [RFC PATCH v4 00/29] Hexagon patch series, no-reply, 2020/09/28
- Re: [RFC PATCH v4 00/29] Hexagon patch series, Philippe Mathieu-Daudé, 2020/09/29