remote_gdb.hh (12173:5887d5a1b6a2) remote_gdb.hh (12449:2260f4a68210)
1/*
2 * Copyright (c) 2015 LabWare
3 * Copyright (c) 2002-2005 The Regents of The University of Michigan
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

--- 37 unchanged lines hidden (view full) ---

46
47namespace AlphaISA {
48
49class RemoteGDB : public BaseRemoteGDB
50{
51 protected:
52 // Machine memory
53 bool acc(Addr addr, size_t len) override;
1/*
2 * Copyright (c) 2015 LabWare
3 * Copyright (c) 2002-2005 The Regents of The University of Michigan
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

--- 37 unchanged lines hidden (view full) ---

46
47namespace AlphaISA {
48
49class RemoteGDB : public BaseRemoteGDB
50{
51 protected:
52 // Machine memory
53 bool acc(Addr addr, size_t len) override;
54 bool write(Addr addr, size_t size, const char *data) override;
55
54
56 void insertHardBreak(Addr addr, size_t len) override;
57
58 class AlphaGdbRegCache : public BaseGdbRegCache
59 {
60 using BaseGdbRegCache::BaseGdbRegCache;
61 private:
62 struct {
63 uint64_t gpr[32];
64 uint64_t fpr[32];
65 uint64_t pc;
66 uint64_t vfp;
67 } r;
68 public:
69 char *data() const { return (char *)&r; }
70 size_t size() const { return sizeof(r); }
71 void getRegs(ThreadContext*);
72 void setRegs(ThreadContext*) const;
55 class AlphaGdbRegCache : public BaseGdbRegCache
56 {
57 using BaseGdbRegCache::BaseGdbRegCache;
58 private:
59 struct {
60 uint64_t gpr[32];
61 uint64_t fpr[32];
62 uint64_t pc;
63 uint64_t vfp;
64 } r;
65 public:
66 char *data() const { return (char *)&r; }
67 size_t size() const { return sizeof(r); }
68 void getRegs(ThreadContext*);
69 void setRegs(ThreadContext*) const;
73 const std::string name() const { return gdb->name() + ".AlphaGdbRegCache"; }
70 const std::string
71 name() const
72 {
73 return gdb->name() + ".AlphaGdbRegCache";
74 }
74 };
75
76 public:
75 };
76
77 public:
77 RemoteGDB(System *system, ThreadContext *context);
78 RemoteGDB(System *system, ThreadContext *context, int _port);
78 BaseGdbRegCache *gdbRegs() override;
79};
80
81} // namespace AlphaISA
82
83#endif // __ARCH_ALPHA_REMOTE_GDB_HH__
79 BaseGdbRegCache *gdbRegs() override;
80};
81
82} // namespace AlphaISA
83
84#endif // __ARCH_ALPHA_REMOTE_GDB_HH__