From patchwork Tue Nov 27 20:22:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pedro Alves X-Patchwork-Id: 30334 Received: (qmail 41320 invoked by alias); 27 Nov 2018 20:22:59 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 40877 invoked by uid 89); 27 Nov 2018 20:22:55 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=20172018, 2017-2018 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 27 Nov 2018 20:22:51 +0000 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C2B673082191 for ; Tue, 27 Nov 2018 20:22:50 +0000 (UTC) Received: from localhost.localdomain (ovpn04.gateway.prod.ext.ams2.redhat.com [10.39.146.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id F1BC15DF5E for ; Tue, 27 Nov 2018 20:22:49 +0000 (UTC) From: Pedro Alves To: gdb-patches@sourceware.org Subject: [PATCH 1/3] Move test_target_ops to a separate file Date: Tue, 27 Nov 2018 20:22:45 +0000 Message-Id: <20181127202247.7646-2-palves@redhat.com> In-Reply-To: <20181127202247.7646-1-palves@redhat.com> References: <20181127202247.7646-1-palves@redhat.com> There's no need to have all target.h users seeing this type. Also helps with a follow up patch. gdb/ChangeLog: yyyy-mm-dd Pedro Alves * Makefile.in (COMMON_SFILES): Add test-target.c. * gdbarch-selftests.c: Include "test-target.h". * regcache.c: Include "test-target.h". * target.c (test_target_info, test_target_ops::info): Move to ... * test-target.c: ... this new file. * target.h (test_target_ops): Move to ... * test-target.h: ... this new file. --- gdb/Makefile.in | 1 + gdb/gdbarch-selftests.c | 1 + gdb/regcache.c | 1 + gdb/target.c | 21 --------------- gdb/target.h | 45 -------------------------------- gdb/test-target.c | 39 ++++++++++++++++++++++++++++ gdb/test-target.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 111 insertions(+), 66 deletions(-) create mode 100644 gdb/test-target.c create mode 100644 gdb/test-target.h diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 3be058f052..7ec3c0a019 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1110,6 +1110,7 @@ COMMON_SFILES = \ target-dcache.c \ target-descriptions.c \ target-memory.c \ + test-target.c \ thread.c \ thread-iter.c \ thread-fsm.c \ diff --git a/gdb/gdbarch-selftests.c b/gdb/gdbarch-selftests.c index 663146f655..af97c7de2f 100644 --- a/gdb/gdbarch-selftests.c +++ b/gdb/gdbarch-selftests.c @@ -24,6 +24,7 @@ #include "inferior.h" #include "gdbthread.h" #include "target.h" +#include "test-target.h" #include "target-float.h" #include "common/def-vector.h" diff --git a/gdb/regcache.c b/gdb/regcache.c index 6e0e8c3e7e..69e42a2722 100644 --- a/gdb/regcache.c +++ b/gdb/regcache.c @@ -21,6 +21,7 @@ #include "inferior.h" #include "gdbthread.h" #include "target.h" +#include "test-target.h" #include "gdbarch.h" #include "gdbcmd.h" #include "regcache.h" diff --git a/gdb/target.c b/gdb/target.c index 29ce5eb414..7fad3a9602 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -192,27 +192,6 @@ target_command (const char *arg, int from_tty) gdb_stdout); } -#if GDB_SELF_TEST -namespace selftests { - -/* A mock process_stratum target_ops that doesn't read/write registers - anywhere. */ - -static const target_info test_target_info = { - "test", - N_("unit tests target"), - N_("You should never see this"), -}; - -const target_info & -test_target_ops::info () const -{ - return test_target_info; -} - -} /* namespace selftests */ -#endif /* GDB_SELF_TEST */ - /* Default target_has_* methods for process_stratum targets. */ int diff --git a/gdb/target.h b/gdb/target.h index 4731e3bf79..e170bbce3c 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -2574,49 +2574,4 @@ extern void target_prepare_to_generate_core (void); /* See to_done_generating_core. */ extern void target_done_generating_core (void); -#if GDB_SELF_TEST -namespace selftests { - -/* A mock process_stratum target_ops that doesn't read/write registers - anywhere. */ - -class test_target_ops : public target_ops -{ -public: - test_target_ops () - : target_ops {} - { - to_stratum = process_stratum; - } - - const target_info &info () const override; - - bool has_registers () override - { - return true; - } - - bool has_stack () override - { - return true; - } - - bool has_memory () override - { - return true; - } - - void prepare_to_store (regcache *regs) override - { - } - - void store_registers (regcache *regs, int regno) override - { - } -}; - - -} // namespace selftests -#endif /* GDB_SELF_TEST */ - #endif /* !defined (TARGET_H) */ diff --git a/gdb/test-target.c b/gdb/test-target.c new file mode 100644 index 0000000000..3d3c950325 --- /dev/null +++ b/gdb/test-target.c @@ -0,0 +1,39 @@ +/* A mock process_stratum target_ops + + Copyright (C) 2017-2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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 . */ + +#include "defs.h" +#include "test-target.h" + +#if GDB_SELF_TEST +namespace selftests { + +static const target_info test_target_info = { + "test", + N_("unit tests target"), + N_("You should never see this"), +}; + +const target_info & +test_target_ops::info () const +{ + return test_target_info; +} + +} /* namespace selftests */ +#endif /* GDB_SELF_TEST */ diff --git a/gdb/test-target.h b/gdb/test-target.h new file mode 100644 index 0000000000..b3170f8265 --- /dev/null +++ b/gdb/test-target.h @@ -0,0 +1,69 @@ +/* A mock process_stratum target_ops + + Copyright (C) 2017-2018 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 3 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 . */ + +#ifndef TEST_TARGET_H +#define TEST_TARGET_H + +#include "target.h" + +#if GDB_SELF_TEST +namespace selftests { + +/* A mock process_stratum target_ops that doesn't read/write registers + anywhere. */ + +class test_target_ops : public target_ops +{ +public: + test_target_ops () + : target_ops {} + { + to_stratum = process_stratum; + } + + const target_info &info () const override; + + bool has_registers () override + { + return true; + } + + bool has_stack () override + { + return true; + } + + bool has_memory () override + { + return true; + } + + void prepare_to_store (regcache *regs) override + { + } + + void store_registers (regcache *regs, int regno) override + { + } +}; + +} // namespace selftests +#endif /* GDB_SELF_TEST */ + +#endif /* !defined (TEST_TARGET_H) */