gem5  v22.1.0.0
remote_gdb.cc
Go to the documentation of this file.
1 /* * Copyright 2022 Google, Inc.
2  *
3  * Redistribution and use in source and binary forms, with or without
4  * modification, are permitted provided that the following conditions are
5  * met: redistributions of source code must retain the above copyright
6  * notice, this list of conditions and the following disclaimer;
7  * redistributions in binary form must reproduce the above copyright
8  * notice, this list of conditions and the following disclaimer in the
9  * documentation and/or other materials provided with the distribution;
10  * neither the name of the copyright holders nor the names of its
11  * contributors may be used to endorse or promote products derived from
12  * this software without specific prior written permission.
13  *
14  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
17  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
18  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
20  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  */
26 
28 
30 
31 namespace gem5 {
32 
33 namespace fastmodel {
34 
36  : gem5::ArmISA::RemoteGDB(_system, port)
37 {
38 }
39 
40 bool
42 {
43  auto tc = dynamic_cast<Iris::ThreadContext *>(context());
44  panic_if(!tc,
45  "FastmodelRemoteGdb can only work on Iris::ThreadContext");
46  tc->readMemWithCurrentMsn(vaddr, size, data);
47  return true;
48 }
49 
50 bool
51 FastmodelRemoteGDB::writeBlob(Addr vaddr, size_t size, const char *data)
52 {
53  auto tc = dynamic_cast<Iris::ThreadContext *>(context());
54  panic_if(!tc,
55  "FastmodelRemoteGdb can only work on Iris::ThreadContext");
56  tc->writeMemWithCurrentMsn(vaddr, size, data);
57  return true;
58 }
59 
60 } // namespace fastmodel
61 } // namespace gem5
const char data[]
ThreadContext * tc
Definition: remote_gdb.hh:273
ThreadContext * context()
Definition: remote_gdb.hh:442
FastmodelRemoteGDB(System *_system, int port)
Definition: remote_gdb.cc:35
bool readBlob(Addr vaddr, size_t size, char *data) override
Definition: remote_gdb.cc:41
bool writeBlob(Addr vaddr, size_t size, const char *data) override
Definition: remote_gdb.cc:51
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
Definition: logging.hh:204
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:147

Generated on Wed Dec 21 2022 10:22:24 for gem5 by doxygen 1.9.1