gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
remote_gdb.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 LabWare
3  * Copyright (c) 2002-2005 The Regents of The University of Michigan
4  * Copyright (c) 2007-2008 The Florida State University
5  * Copyright (c) 2009 The University of Edinburgh
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are
10  * met: redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer;
12  * redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution;
15  * neither the name of the copyright holders nor the names of its
16  * contributors may be used to endorse or promote products derived from
17  * this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  *
31  * Authors: Nathan Binkert
32  * Stephen Hines
33  * Timothy M. Jones
34  * Boris Shingarov
35  */
36 
37 #ifndef __ARCH_POWER_REMOTE_GDB_HH__
38 #define __ARCH_POWER_REMOTE_GDB_HH__
39 
40 #include "arch/power/registers.hh"
41 #include "arch/power/remote_gdb.hh"
42 #include "base/remote_gdb.hh"
43 
44 namespace PowerISA
45 {
46 
47 
48 class RemoteGDB : public BaseRemoteGDB
49 {
50  protected:
51  bool acc(Addr addr, size_t len);
52 
53  class PowerGdbRegCache : public BaseGdbRegCache
54  {
56  private:
57  struct {
58  uint32_t gpr[NumIntArchRegs];
59  uint64_t fpr[NumFloatArchRegs];
60  uint32_t pc;
61  uint32_t msr;
62  uint32_t cr;
63  uint32_t lr;
64  uint32_t ctr;
65  uint32_t xer;
66  } r;
67  public:
68  char *data() const { return (char *)&r; }
69  size_t size() const { return sizeof(r); }
70  void getRegs(ThreadContext*);
71  void setRegs(ThreadContext*) const;
72  const std::string
73  name() const
74  {
75  return gdb->name() + ".PowerGdbRegCache";
76  }
77  };
78 
80 
81  public:
82  RemoteGDB(System *_system, ThreadContext *tc);
84 };
85 
86 } // namespace PowerISA
87 
88 #endif /* __ARCH_POWER_REMOTE_GDB_H__ */
const std::string name() const
Definition: remote_gdb.hh:73
BaseGdbRegCache(BaseRemoteGDB *g)
Definition: remote_gdb.hh:219
RemoteGDB(System *_system, ThreadContext *tc)
Definition: remote_gdb.cc:154
void setRegs(ThreadContext *) const
Definition: remote_gdb.cc:201
ip6_addr_t addr
Definition: inet.hh:335
Definition: system.hh:83
uint32_t gpr[NumIntArchRegs]
Definition: remote_gdb.hh:58
ThreadContext is the external interface to all thread state for anything outside of the CPU...
const int NumFloatArchRegs
Definition: registers.hh:64
Concrete subclasses of this abstract class represent how the register values are transmitted on the w...
Definition: remote_gdb.hh:183
BaseGdbRegCache * gdbRegs()
Definition: remote_gdb.cc:220
struct PowerISA::RemoteGDB::PowerGdbRegCache::@19 r
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:142
PowerGdbRegCache regCache
Definition: remote_gdb.hh:79
bool acc(Addr addr, size_t len)
Definition: remote_gdb.cc:163
const int NumIntArchRegs
Definition: registers.hh:59
uint64_t fpr[NumFloatArchRegs]
Definition: remote_gdb.hh:59
Bitfield< 18, 16 > len
Definition: miscregs.hh:1626

Generated on Fri Jun 9 2017 13:03:36 for gem5 by doxygen 1.8.6