From patchwork Wed Apr 11 18:45:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 897337 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=vivier.eu Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40LtMG1lLSz9s4q for ; Thu, 12 Apr 2018 04:47:37 +1000 (AEST) Received: from localhost ([::1]:48098 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f6KmK-0004Di-AN for incoming@patchwork.ozlabs.org; Wed, 11 Apr 2018 14:47:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59227) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f6KlH-00049f-R0 for qemu-devel@nongnu.org; Wed, 11 Apr 2018 14:46:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f6KlD-0001wt-E1 for qemu-devel@nongnu.org; Wed, 11 Apr 2018 14:46:27 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:50021) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f6KlD-0001wE-3d; Wed, 11 Apr 2018 14:46:23 -0400 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.183]) with ESMTPSA (Nemesis) id 0MRD6F-1etvSj1BU7-00UdDS; Wed, 11 Apr 2018 20:46:06 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Wed, 11 Apr 2018 20:45:36 +0200 Message-Id: <20180411184556.17200-1-laurent@vivier.eu> X-Mailer: git-send-email 2.14.3 MIME-Version: 1.0 X-Provags-ID: V03:K1:fnj88Y9zm7lTrmmkXI0k9InQQ3CzrcXoihKbVr0zPzVHwSvuLzQ atRp7UQmMTnjjTlLXypgJj4YG433/uHfL/FYgyLWHgtkhz+0v/kaU5XRfkWEsYnpoWg7gW8 lFfD+rWFnI3jSVEgs8N7f/WzDQPj0Ts6I+eg1azlrryL05mJqdOUpkO3Dd36lfQnoQge5f/ Ym3d6ziooaYphoL5yxxcQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:13m3o3hOsv0=:/AoxkHAxqky37sMNn8257j v5E464T2Ba2C4yxyRYk4qccuqnm7A90vNh8kxXouX3f2EGCCvBdSgGosqeKsoGs336KyIqHo8 0OvspwVXSt0FpyFs3z+glcRjmUc4QJyxHIR7QMIUeTj5iEQgj9eJxkOZi6JEBRw1PwT3mKnbT 0+Gbyz/bYWuoL2L36sFfwjSuTXHijTthmFP9vtbm7SZGONjuiuWpWa6OpcTZB6YDEECQsNgqJ BbVtXbjaD8jml5QgMTmiPeZhicqQLcTlF0TEupZPB5a5qH1/E/oiyyi8lmLPcqOyZdyYWJp3f tVjs81GoPPUZmSuPNAM+6xsDMkN1xR/HiViU4gxICKN0M69cG8KnaPlgQDgi0iVyJQBv9zl7J R53vUm+xr9Zs6Gm9zZzsG8yq7UfnR2QqdLCTyacTbg82/zVGX+PO4C7Vy6C1PFKVVeL/QDqUX pp1zHb8Z7yPN/uRzwBsvXipneR/pbJNtvc6DN6dxYGBzRRL8Fq08Ynfi9FQ17hfXGYuiiF7Vt yVFnuirCz0gSc50SqDbFjdPUJ+21V5kaFSBeNg/QkebwzPR+w4bjYHyolDkHxcB3gYbQ2JYdu yY4yBnTw985YI+i6/YmPqFYMIOdQAIiaQIe9R5w7Dfi2xaJzmBigbVSRP2xjGEWVoKo8OaqNA DrdORzp2bpY8WdPs5W8o/BmjJdV1NXlPEBh/RU1fD8C4q1fISzZYob7dTAzna6wblRDe2Mhja jyIVSR1udm+g/yCIclbzOn1Bgkdve2PIxy1jv6DhghguswZaLd31cuei348= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.72.192.75 Subject: [Qemu-devel] [PATCH for 2.13 v3 00/20] move arch specific parts to arch directories X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Riku Voipio , Cornelia Huck , Richard Henderson , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Laurent Vivier , qemu-s390x@nongnu.org, =?utf-8?q?Alex_Benn=C3=A9e?= Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Some files like signal.c are really hard to read because all architectures are mixed in the same file. This series moves from signal.c these parts to the architecture dedicated directories in linux-user. Moreover, this allows to compare easier functions between architectures (it helps to debug problems). Adding new functions for a new architecture will be facilitated too. checkpatch.pl is not happy... but I only want to move code from a file to another. I don't want to change the content of the parts I move. v3: - rebase and add R-b (except on PATCH 20/20] - expand tabs - move declarations of functions to signal-common.h - fix comment in handle_pending_signal() - report changes introduced by 5de154e82f linux-user: define TARGET_ARCH_HAS_KA_RESTORER 20ef667060 target/xtensa: fix flush_window_regs 95a29a4e3e linux-user: fix alpha signal emulation 7f0f4208b3 linux-user/signal.c: Ensure AArch64 signal frame isn't too small v2: - only move parts from signal.c - link them instead of including them - one patch by architecture - add a first patch to prepare the change. The first patch adds signal-common.h to define what is needed by the signal.c of the architectures. It adds a "do-nothing" signal.c in each arch directory and the rule needed to build them in Makefile.objs. Then the process is simple... for each architecture: - copy the arch specific code from signal.c to /signal.c - add includes (including signal-common.h) - export setup_rt_frame() and setup_frame() (remove static in /signal.c, add the declaration in /target_signal.h) When the arch has 32bit and 64bit architectures, it's a little bit more complicated: - ppc/ppc64: nothing special to do, all is in ppc/, there is no ppc64 directory, - arm/aarch64: one file for arm, one file for aarch64 - i386/x86_64, sparc/sparc64, mips/mips64: update each target_signal.h, include the 32bit signal.c file into the 64bit signal.c file to avoid to duplicate code (and add a guard to not include the 32bit target_signal.h) Laurent Vivier (20): linux-user: create a dummy per arch signal.c linux-user: move aarch64 signal.c parts to aarch64 directory linux-user: move arm signal.c parts to arm directory linux-user: move sh4 signal.c parts to sh4 directory linux-user: move microblaze signal.c parts to microblaze directory linux-user: move cris signal.c parts to cris directory linux-user: move nios2 signal.c parts to nios2 directory linux-user: move openrisc signal.c parts to openrisc directory linux-user: move s390x signal.c parts to s390x directory linux-user: move m68k signal.c parts to m68k directory linux-user: move alpha signal.c parts to alpha directory linux-user: move tilegx signal.c parts to tilegx directory linux-user: move riscv signal.c parts to riscv directory linux-user: move hppa signal.c parts to hppa directory linux-user: move xtensa signal.c parts to xtensa directory linux-user: move i386/x86_64 signal.c parts to i386 directory linux-user: move sparc/sparc64 signal.c parts to sparc directory linux-user: move mips/mips64 signal.c parts to mips directory linux-user: move ppc/ppc64 signal.c parts to ppc directory linux-user: define TARGET_ARCH_HAS_SETUP_FRAME linux-user/Makefile.objs | 2 +- linux-user/aarch64/signal.c | 585 +++ linux-user/aarch64/target_signal.h | 1 + linux-user/alpha/signal.c | 280 ++ linux-user/alpha/target_signal.h | 1 + linux-user/arm/signal.c | 772 ++++ linux-user/arm/target_signal.h | 2 +- linux-user/cris/signal.c | 189 + linux-user/cris/target_signal.h | 2 +- linux-user/hppa/signal.c | 210 ++ linux-user/hppa/target_signal.h | 1 - linux-user/i386/signal.c | 602 +++ linux-user/i386/target_signal.h | 1 + linux-user/m68k/signal.c | 428 +++ linux-user/m68k/target_signal.h | 2 +- linux-user/microblaze/signal.c | 248 ++ linux-user/microblaze/target_signal.h | 2 +- linux-user/mips/signal.c | 400 ++ linux-user/mips/target_signal.h | 5 +- linux-user/mips64/signal.c | 20 + linux-user/mips64/target_signal.h | 2 - linux-user/nios2/signal.c | 254 ++ linux-user/nios2/target_signal.h | 1 - linux-user/openrisc/signal.c | 231 ++ linux-user/openrisc/target_signal.h | 2 - linux-user/ppc/signal.c | 689 ++++ linux-user/ppc/target_signal.h | 4 +- linux-user/riscv/signal.c | 218 ++ linux-user/riscv/target_signal.h | 1 - linux-user/s390x/signal.c | 327 ++ linux-user/s390x/target_signal.h | 2 +- linux-user/sh4/signal.c | 350 ++ linux-user/sh4/target_signal.h | 2 +- linux-user/signal-common.h | 57 + linux-user/signal.c | 6651 +-------------------------------- linux-user/sparc/signal.c | 624 ++++ linux-user/sparc/target_signal.h | 2 +- linux-user/sparc64/signal.c | 20 + linux-user/sparc64/target_signal.h | 2 +- linux-user/tilegx/signal.c | 186 + linux-user/tilegx/target_signal.h | 2 - linux-user/x86_64/signal.c | 20 + linux-user/x86_64/target_signal.h | 1 - linux-user/xtensa/signal.c | 268 ++ linux-user/xtensa/target_signal.h | 1 - 45 files changed, 7070 insertions(+), 6600 deletions(-) create mode 100644 linux-user/aarch64/signal.c create mode 100644 linux-user/alpha/signal.c create mode 100644 linux-user/arm/signal.c create mode 100644 linux-user/cris/signal.c create mode 100644 linux-user/hppa/signal.c create mode 100644 linux-user/i386/signal.c create mode 100644 linux-user/m68k/signal.c create mode 100644 linux-user/microblaze/signal.c create mode 100644 linux-user/mips/signal.c create mode 100644 linux-user/mips64/signal.c create mode 100644 linux-user/nios2/signal.c create mode 100644 linux-user/openrisc/signal.c create mode 100644 linux-user/ppc/signal.c create mode 100644 linux-user/riscv/signal.c create mode 100644 linux-user/s390x/signal.c create mode 100644 linux-user/sh4/signal.c create mode 100644 linux-user/signal-common.h create mode 100644 linux-user/sparc/signal.c create mode 100644 linux-user/sparc64/signal.c create mode 100644 linux-user/tilegx/signal.c create mode 100644 linux-user/x86_64/signal.c create mode 100644 linux-user/xtensa/signal.c