gem5  v21.1.0.2
passthrough_target_socket.h
Go to the documentation of this file.
1 /*****************************************************************************
2 
3  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
4  more contributor license agreements. See the NOTICE file distributed
5  with this work for additional information regarding copyright ownership.
6  Accellera licenses this file to you under the Apache License, Version 2.0
7  (the "License"); you may not use this file except in compliance with the
8  License. You may obtain a copy of the License at
9 
10  http://www.apache.org/licenses/LICENSE-2.0
11 
12  Unless required by applicable law or agreed to in writing, software
13  distributed under the License is distributed on an "AS IS" BASIS,
14  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15  implied. See the License for the specific language governing
16  permissions and limitations under the License.
17 
18  *****************************************************************************/
19 
20 #ifndef __SYSTEMC_EXT_TLM_UTILS_PASSTHROUGH_TARGET_SOCKET_H__
21 #define __SYSTEMC_EXT_TLM_UTILS_PASSTHROUGH_TARGET_SOCKET_H__
22 
23 #include "../core/sc_port.hh"
24 #include "../core/sc_time.hh"
25 #include "../tlm_core/2/sockets/target_socket.hh"
26 #include "../utils/sc_report_handler.hh"
28 
29 namespace tlm_utils
30 {
31 
32 template <typename MODULE, unsigned int BUSWIDTH, typename TYPES,
34 class passthrough_target_socket_b :
35  public tlm::tlm_target_socket<BUSWIDTH, TYPES, 1, POL>,
36  protected passthrough_socket_base
37 {
38  public:
39  typedef typename TYPES::tlm_payload_type transaction_type;
40  typedef typename TYPES::tlm_phase_type phase_type;
45 
46  public:
47  static const char *
48  default_name()
49  {
50  return sc_core::sc_gen_unique_name("passthrough_target_socket");
51  }
52 
53  explicit passthrough_target_socket_b(const char *n=default_name()) :
54  base_type(n), m_process(this)
55  {
56  bind(m_process);
57  }
58 
59  using base_type::bind;
60 
61  // REGISTER_XXX
62  void
64  sync_enum_type (MODULE::*cb)(transaction_type &, phase_type &,
66  {
68  }
69 
70  void
71  register_b_transport(MODULE *mod,
72  void (MODULE::*cb)(transaction_type &, sc_core::sc_time &))
73  {
75  }
76 
77  void
79  unsigned int (MODULE::*cb)(transaction_type &))
80  {
82  }
83 
84  void
86  bool (MODULE::*cb)(transaction_type &, tlm::tlm_dmi &))
87  {
89  }
90 
91  private:
92  class process : public tlm::tlm_fw_transport_if<TYPES>,
94  {
95  public:
96  typedef sync_enum_type (MODULE::*NBTransportPtr)(
98  typedef void (MODULE::*BTransportPtr)(
100  typedef unsigned int (MODULE::*TransportDbgPtr)(transaction_type &);
101  typedef bool (MODULE::*GetDirectMem_ptr)(
103 
104  explicit process(passthrough_socket_base *owner) :
108  {}
109 
110  void
112  {
113  if (m_nb_transport_ptr) {
114  display_warning("non-blocking callback already registered");
115  return;
116  }
117  sc_assert(!m_mod || m_mod == mod);
118  m_mod = mod;
120  }
121 
122  void
124  {
125  if (m_b_transport_ptr) {
126  display_warning("blocking callback already registered");
127  return;
128  }
129  sc_assert(!m_mod || m_mod == mod);
132  }
133 
134  void
136  {
137  if (m_transport_dbg_ptr) {
138  display_warning("debug callback already registered");
139  return;
140  }
141  sc_assert(!m_mod || m_mod == mod);
142  m_mod = mod;
144  }
145 
146  void
148  {
149  if (m_get_direct_mem_ptr) {
151  "get DMI pointer callback already registered");
152  return;
153  }
154  sc_assert(!m_mod || m_mod == mod);
155  m_mod = mod;
157  }
158 
160  transaction_type &trans, phase_type &phase,
162  {
163  if (m_nb_transport_ptr) {
164  // Forward call.
165  sc_assert(m_mod);
166  return (m_mod->*m_nb_transport_ptr)(trans, phase, t);
167  }
168  display_error("no non-blocking callback registered");
170  }
171 
172  void
174  {
175  if (m_b_transport_ptr) {
176  // Forward call.
177  sc_assert(m_mod);
178  return (m_mod->*m_b_transport_ptr)(trans, t);
179  }
180  display_error("no blocking callback registered");
181  }
182 
183  unsigned int
185  {
186  if (m_transport_dbg_ptr) {
187  // Forward call.
188  sc_assert(m_mod);
189  return (m_mod->*m_transport_dbg_ptr)(trans);
190  }
191  // No debug support
192  return 0;
193  }
194 
195  bool
197  {
198  if (m_get_direct_mem_ptr) {
199  // Forward call.
200  sc_assert(m_mod);
201  return (m_mod->*m_get_direct_mem_ptr)(trans, dmi_data);
202  }
203  // No DMI support
204  dmi_data.allow_read_write();
205  dmi_data.set_start_address(0x0);
206  dmi_data.set_end_address((sc_dt::uint64)-1);
207  return false;
208  }
209 
210  private:
211  MODULE *m_mod;
216  };
217 
218  private:
219  const sc_core::sc_object *get_socket() const { return this; }
220 
221  private:
223 };
224 
225 template <typename MODULE, unsigned int BUSWIDTH=32,
226  typename TYPES=tlm::tlm_base_protocol_types>
228  public passthrough_target_socket_b<MODULE, BUSWIDTH, TYPES>
229 {
231  public:
233  explicit passthrough_target_socket(const char *name) : socket_b(name) {}
234 };
235 
236 template <typename MODULE, unsigned int BUSWIDTH=32,
237  typename TYPES=tlm::tlm_base_protocol_types>
238 class passthrough_target_socket_optional :
239  public passthrough_target_socket_b<
240  MODULE, BUSWIDTH, TYPES, sc_core::SC_ZERO_OR_MORE_BOUND>
241 {
243  MODULE, BUSWIDTH, TYPES, sc_core::SC_ZERO_OR_MORE_BOUND> socket_b;
244  public:
246  explicit passthrough_target_socket_optional(const char *name) :
248 };
249 
250 // ID Tagged version
251 template <typename MODULE, unsigned int BUSWIDTH, typename TYPES,
254  public tlm::tlm_target_socket<BUSWIDTH, TYPES, 1, POL>,
256 {
257  public:
258  typedef typename TYPES::tlm_payload_type transaction_type;
259  typedef typename TYPES::tlm_phase_type phase_type;
264 
265  static const char *
266  default_name()
267  {
269  "passthrough_target_socket_tagged");
270  }
271 
272  public:
274  const char *n=default_name()) : base_type(n), m_process(this)
275  {
277  }
278 
280 
281  // REGISTER_XXX
282  void
284  sync_enum_type (MODULE::*cb)(int id, transaction_type &,
286  int id)
287  {
290  }
291 
292  void
293  register_b_transport(MODULE *mod,
294  void (MODULE::*cb)(int id, transaction_type &,
295  sc_core::sc_time &),
296  int id)
297  {
300  }
301 
302  void
303  register_transport_dbg(MODULE *mod,
304  unsigned int (MODULE::*cb)(int id, transaction_type &), int id)
305  {
308  }
309 
310  void
312  bool (MODULE::*cb)(int id, transaction_type &, tlm::tlm_dmi &),
313  int id)
314  {
317  }
318 
319  private:
320  class process : public tlm::tlm_fw_transport_if<TYPES>,
322  {
323  public:
324  typedef sync_enum_type (MODULE::*NBTransportPtr)(
326  typedef void (MODULE::*BTransportPtr)(
328  typedef unsigned int (MODULE::*TransportDbgPtr)(
329  int id, transaction_type &);
330  typedef bool (MODULE::*GetDirectMem_ptr)(
331  int id, transaction_type &, tlm::tlm_dmi &);
332 
339  {}
340 
341  void
343  {
345  }
346  void
348  {
350  }
351  void
353  {
355  }
356  void
357  set_get_dmi_user_id(int id)
358  {
360  }
361 
362  void
364  {
365  if (m_nb_transport_ptr) {
366  display_warning("non-blocking callback already registered");
367  return;
368  }
370  m_mod = mod;
372  }
373 
374  void
376  {
377  if (m_b_transport_ptr) {
378  display_warning("blocking callback already registered");
379  return;
380  }
381  sc_assert(!m_mod || m_mod == mod);
382  m_mod = mod;
384  }
385 
386  void
388  {
389  if (m_transport_dbg_ptr) {
390  display_warning("debug callback already registered");
391  return;
392  }
393  sc_assert(!m_mod || m_mod == mod);
394  m_mod = mod;
396  }
397 
398  void
400  {
401  if (m_get_direct_mem_ptr) {
403  "get DMI pointer callback already registered");
404  return;
405  }
406  sc_assert(!m_mod || m_mod == mod);
407  m_mod = mod;
409  }
410 
414  {
415  if (m_nb_transport_ptr) {
416  // Forward call.
417  sc_assert(m_mod);
418  return (m_mod->*m_nb_transport_ptr)(
419  m_nb_transport_user_id, trans, phase, t);
420  }
421  display_error("no non-blocking callback registered");
422  return tlm::TLM_COMPLETED;
423  }
424 
425  void
427  {
428  if (m_b_transport_ptr) {
429  // Forward call.
430  sc_assert(m_mod);
431  return (m_mod->*m_b_transport_ptr)(
432  m_b_transport_user_id, trans, t);
433  }
434  display_error("no blocking callback registered");
435  }
436 
437  unsigned int
439  {
440  if (m_transport_dbg_ptr) {
441  // Forward call.
442  sc_assert(m_mod);
444  m_transport_dbg_user_id, trans);
445  }
446  // No debug support.
447  return 0;
448  }
449 
450  bool
452  {
453  if (m_get_direct_mem_ptr) {
454  // Forward call.
456  return (m_mod->*m_get_direct_mem_ptr)(
457  m_get_dmi_user_id, trans, dmi_data);
458  }
459  // No DMI support
460  dmi_data.allow_read_write();
461  dmi_data.set_start_address(0x0);
462  dmi_data.set_end_address((sc_dt::uint64)-1);
463  return false;
464  }
465 
466  private:
467  MODULE *m_mod;
475  int m_get_dmi_user_id;
476  };
477 
478  private:
479  const sc_core::sc_object *get_socket() const { return this; }
480 
481  private:
482  process m_process;
483 };
484 
485 template <typename MODULE, unsigned int BUSWIDTH=32,
488  public passthrough_target_socket_tagged_b<MODULE, BUSWIDTH, TYPES>
489 {
492  public:
494  explicit passthrough_target_socket_tagged(const char *name) :
495  socket_b(name)
496  {}
497 };
498 
499 template <typename MODULE, unsigned int BUSWIDTH=32,
500  typename TYPES=tlm::tlm_base_protocol_types>
503  MODULE, BUSWIDTH, TYPES, sc_core::SC_ZERO_OR_MORE_BOUND>
504 {
506  MODULE, BUSWIDTH, TYPES, sc_core::SC_ZERO_OR_MORE_BOUND> socket_b;
507  public:
509  explicit passthrough_target_socket_tagged_optional(const char *name) :
511  {}
512 };
513 
514 } // namespace tlm_utils
515 
516 #endif /* __SYSTEMC_EXT_TLM_UTILS_PASSTHROUGH_TARGET_SOCKET_H__ */
tlm_utils::passthrough_target_socket_b::sync_enum_type
tlm::tlm_sync_enum sync_enum_type
Definition: passthrough_target_socket.h:75
tlm_utils::passthrough_target_socket_tagged_b::base_type
tlm::tlm_target_socket< BUSWIDTH, TYPES, 1, POL > base_type
Definition: passthrough_target_socket.h:280
tlm::tlm_bw_transport_if
Definition: fw_bw_ifs.hh:231
sc_core::SC_ONE_OR_MORE_BOUND
@ SC_ONE_OR_MORE_BOUND
Definition: sc_port.hh:69
tlm_utils::passthrough_target_socket_tagged_b::process::transport_dbg
unsigned int transport_dbg(transaction_type &trans)
Definition: passthrough_target_socket.h:455
tlm_utils::passthrough_target_socket_b::process::set_b_transport_ptr
void set_b_transport_ptr(MODULE *mod, BTransportPtr p)
Definition: passthrough_target_socket.h:157
tlm_utils::passthrough_target_socket_tagged_b::process::m_transport_dbg_ptr
TransportDbgPtr m_transport_dbg_ptr
Definition: passthrough_target_socket.h:487
tlm_utils::passthrough_target_socket_tagged_b::process::set_b_transport_user_id
void set_b_transport_user_id(int id)
Definition: passthrough_target_socket.h:364
tlm_utils::passthrough_target_socket_tagged_b::get_socket
const sc_core::sc_object * get_socket() const
Definition: passthrough_target_socket.h:496
tlm::tlm_dmi::allow_read_write
void allow_read_write()
Definition: dmi.hh:124
tlm::tlm_target_socket
Definition: target_socket.hh:213
tlm_utils::passthrough_target_socket_optional::passthrough_target_socket_optional
passthrough_target_socket_optional()
Definition: passthrough_target_socket.h:262
tlm::TLM_COMPLETED
@ TLM_COMPLETED
Definition: fw_bw_ifs.hh:65
gem5::X86ISA::mod
mod
Definition: types.hh:91
tlm_utils::passthrough_target_socket_tagged_b::process::m_nb_transport_user_id
int m_nb_transport_user_id
Definition: passthrough_target_socket.h:489
tlm::tlm_dmi
Definition: dmi.hh:46
tlm_utils::passthrough_target_socket_b::phase_type
TYPES::tlm_phase_type phase_type
Definition: passthrough_target_socket.h:74
tlm_utils::passthrough_target_socket_optional::socket_b
passthrough_target_socket_b< MODULE, BUSWIDTH, TYPES, sc_core::SC_ZERO_OR_MORE_BOUND > socket_b
Definition: passthrough_target_socket.h:260
tlm_utils::passthrough_target_socket_tagged_optional
Definition: passthrough_target_socket.h:518
tlm_utils::passthrough_target_socket_b::process::set_nb_transport_ptr
void set_nb_transport_ptr(MODULE *mod, NBTransportPtr p)
Definition: passthrough_target_socket.h:145
tlm_utils::passthrough_socket_base
Definition: convenience_socket_bases.h:57
tlm_utils::passthrough_target_socket_tagged_b::process::m_mod
MODULE * m_mod
Definition: passthrough_target_socket.h:484
tlm_utils::passthrough_target_socket_tagged_b::register_get_direct_mem_ptr
void register_get_direct_mem_ptr(MODULE *mod, bool(MODULE::*cb)(int id, transaction_type &, tlm::tlm_dmi &), int id)
Definition: passthrough_target_socket.h:328
tlm_utils::passthrough_target_socket_tagged_b::process::set_get_dmi_user_id
void set_get_dmi_user_id(int id)
Definition: passthrough_target_socket.h:374
tlm_utils::passthrough_target_socket_b::process::set_get_direct_mem_ptr
void set_get_direct_mem_ptr(MODULE *mod, GetDirectMem_ptr p)
Definition: passthrough_target_socket.h:181
tlm_utils::passthrough_target_socket::socket_b
passthrough_target_socket_b< MODULE, BUSWIDTH, TYPES > socket_b
Definition: passthrough_target_socket.h:247
tlm_utils::convenience_socket_cb_holder::display_error
void display_error(const char *msg) const
Definition: convenience_socket_bases.cc:73
tlm_utils::passthrough_target_socket
Definition: passthrough_target_socket.h:244
tlm_utils::passthrough_target_socket_b
Definition: passthrough_target_socket.h:51
tlm_utils::passthrough_target_socket_b::process::transport_dbg
unsigned int transport_dbg(transaction_type &trans)
Definition: passthrough_target_socket.h:218
sc_assert
#define sc_assert(expr)
Definition: sc_report_handler.hh:135
tlm_utils::passthrough_target_socket_b::process::b_transport
void b_transport(transaction_type &trans, sc_core::sc_time &t)
Definition: passthrough_target_socket.h:207
tlm_utils::passthrough_target_socket_tagged_b::process::m_b_transport_user_id
int m_b_transport_user_id
Definition: passthrough_target_socket.h:490
tlm_utils::passthrough_target_socket_b::process::nb_transport_fw
sync_enum_type nb_transport_fw(transaction_type &trans, phase_type &phase, sc_core::sc_time &t)
Definition: passthrough_target_socket.h:193
tlm_utils::passthrough_target_socket_b::m_process
process m_process
Definition: passthrough_target_socket.h:256
tlm_utils::passthrough_target_socket_tagged_optional::passthrough_target_socket_tagged_optional
passthrough_target_socket_tagged_optional()
Definition: passthrough_target_socket.h:525
tlm_utils::passthrough_target_socket_tagged_b::process::set_transport_dbg_ptr
void set_transport_dbg_ptr(MODULE *mod, TransportDbgPtr p)
Definition: passthrough_target_socket.h:404
tlm_utils::passthrough_target_socket_tagged_b::process::get_direct_mem_ptr
bool get_direct_mem_ptr(transaction_type &trans, tlm::tlm_dmi &dmi_data)
Definition: passthrough_target_socket.h:468
tlm::tlm_fw_transport_if
Definition: fw_bw_ifs.hh:221
tlm_utils::passthrough_target_socket_b::transaction_type
TYPES::tlm_payload_type transaction_type
Definition: passthrough_target_socket.h:73
tlm_utils::passthrough_target_socket_tagged_b::default_name
static const char * default_name()
Definition: passthrough_target_socket.h:283
tlm::tlm_dmi::set_end_address
void set_end_address(sc_dt::uint64 addr)
Definition: dmi.hh:117
tlm_utils::passthrough_target_socket::passthrough_target_socket
passthrough_target_socket()
Definition: passthrough_target_socket.h:249
tlm_utils::passthrough_target_socket_b::process::m_b_transport_ptr
BTransportPtr m_b_transport_ptr
Definition: passthrough_target_socket.h:247
tlm_utils::passthrough_target_socket_tagged
Definition: passthrough_target_socket.h:504
tlm_utils::passthrough_target_socket_tagged_b::process::m_get_direct_mem_ptr
GetDirectMem_ptr m_get_direct_mem_ptr
Definition: passthrough_target_socket.h:488
tlm_utils::passthrough_target_socket_tagged_b::process::b_transport
void b_transport(transaction_type &trans, sc_core::sc_time &t)
Definition: passthrough_target_socket.h:443
tlm_utils::passthrough_target_socket_tagged_b::process::set_get_direct_mem_ptr
void set_get_direct_mem_ptr(MODULE *mod, GetDirectMem_ptr p)
Definition: passthrough_target_socket.h:416
tlm_utils::passthrough_target_socket_tagged_b::transaction_type
TYPES::tlm_payload_type transaction_type
Definition: passthrough_target_socket.h:275
tlm_utils::passthrough_target_socket_tagged_b::passthrough_target_socket_tagged_b
passthrough_target_socket_tagged_b(const char *n=default_name())
Definition: passthrough_target_socket.h:290
tlm_utils::passthrough_target_socket_tagged_b::phase_type
TYPES::tlm_phase_type phase_type
Definition: passthrough_target_socket.h:276
sc_core::SC_ZERO_OR_MORE_BOUND
@ SC_ZERO_OR_MORE_BOUND
Definition: sc_port.hh:70
tlm_utils::passthrough_target_socket_tagged_b::process::m_b_transport_ptr
BTransportPtr m_b_transport_ptr
Definition: passthrough_target_socket.h:486
tlm_utils::passthrough_target_socket_tagged_b::fw_interface_type
tlm::tlm_fw_transport_if< TYPES > fw_interface_type
Definition: passthrough_target_socket.h:278
sc_dt::uint64
uint64_t uint64
Definition: sc_nbdefs.hh:206
tlm_utils::passthrough_target_socket_b::process::set_transport_dbg_ptr
void set_transport_dbg_ptr(MODULE *mod, TransportDbgPtr p)
Definition: passthrough_target_socket.h:169
tlm_utils::passthrough_target_socket_b::process::get_direct_mem_ptr
bool get_direct_mem_ptr(transaction_type &trans, tlm::tlm_dmi &dmi_data)
Definition: passthrough_target_socket.h:230
gem5::MipsISA::p
Bitfield< 0 > p
Definition: pra_constants.hh:326
tlm_utils::passthrough_target_socket_b::passthrough_target_socket_b
passthrough_target_socket_b(const char *n=default_name())
Definition: passthrough_target_socket.h:87
sc_core::sc_time
Definition: sc_time.hh:49
tlm_utils::passthrough_target_socket_b::process
Definition: passthrough_target_socket.h:126
tlm_utils::passthrough_target_socket_tagged::passthrough_target_socket_tagged
passthrough_target_socket_tagged()
Definition: passthrough_target_socket.h:510
tlm_utils::passthrough_target_socket_tagged_b::process::TransportDbgPtr
unsigned int(MODULE::* TransportDbgPtr)(int id, transaction_type &)
Definition: passthrough_target_socket.h:345
tlm_utils::passthrough_target_socket_b::register_b_transport
void register_b_transport(MODULE *mod, void(MODULE::*cb)(transaction_type &, sc_core::sc_time &))
Definition: passthrough_target_socket.h:105
tlm_utils::passthrough_target_socket_b::process::m_transport_dbg_ptr
TransportDbgPtr m_transport_dbg_ptr
Definition: passthrough_target_socket.h:248
tlm_utils::passthrough_target_socket_b::get_socket
const sc_core::sc_object * get_socket() const
Definition: passthrough_target_socket.h:253
tlm_utils::passthrough_target_socket_b::process::m_mod
MODULE * m_mod
Definition: passthrough_target_socket.h:245
tlm_utils::passthrough_target_socket_b::process::NBTransportPtr
sync_enum_type(MODULE::* NBTransportPtr)(transaction_type &, phase_type &, sc_core::sc_time &)
Definition: passthrough_target_socket.h:130
tlm_utils::passthrough_target_socket_tagged_b::process::m_get_dmi_user_id
int m_get_dmi_user_id
Definition: passthrough_target_socket.h:492
tlm_utils::passthrough_target_socket_b::register_transport_dbg
void register_transport_dbg(MODULE *mod, unsigned int(MODULE::*cb)(transaction_type &))
Definition: passthrough_target_socket.h:112
sc_core::sc_gen_unique_name
const char * sc_gen_unique_name(const char *seed)
Definition: sc_module.cc:820
sc_core::sc_port_policy
sc_port_policy
Definition: sc_port.hh:67
tlm_utils::passthrough_target_socket_b::process::process
process(passthrough_socket_base *owner)
Definition: passthrough_target_socket.h:138
gem5::ArmISA::t
Bitfield< 5 > t
Definition: misc_types.hh:70
tlm_utils::passthrough_target_socket_b::process::BTransportPtr
void(MODULE::* BTransportPtr)(transaction_type &, sc_core::sc_time &)
Definition: passthrough_target_socket.h:132
tlm_utils::passthrough_target_socket_tagged_b::register_b_transport
void register_b_transport(MODULE *mod, void(MODULE::*cb)(int id, transaction_type &, sc_core::sc_time &), int id)
Definition: passthrough_target_socket.h:310
sc_core::sc_object
Definition: sc_object.hh:50
name
const std::string & name()
Definition: trace.cc:49
tlm_utils::passthrough_target_socket_tagged_b::process::set_b_transport_ptr
void set_b_transport_ptr(MODULE *mod, BTransportPtr p)
Definition: passthrough_target_socket.h:392
tlm_utils::passthrough_target_socket_b::process::m_get_direct_mem_ptr
GetDirectMem_ptr m_get_direct_mem_ptr
Definition: passthrough_target_socket.h:249
tlm_utils::passthrough_target_socket_b::register_get_direct_mem_ptr
void register_get_direct_mem_ptr(MODULE *mod, bool(MODULE::*cb)(transaction_type &, tlm::tlm_dmi &))
Definition: passthrough_target_socket.h:119
tlm_utils
Definition: convenience_socket_bases.h:29
tlm_utils::passthrough_target_socket_b::process::TransportDbgPtr
unsigned int(MODULE::* TransportDbgPtr)(transaction_type &)
Definition: passthrough_target_socket.h:134
tlm_utils::passthrough_target_socket_tagged_b::process::nb_transport_fw
sync_enum_type nb_transport_fw(transaction_type &trans, phase_type &phase, sc_core::sc_time &t)
Definition: passthrough_target_socket.h:429
tlm_utils::passthrough_target_socket_tagged::socket_b
passthrough_target_socket_tagged_b< MODULE, BUSWIDTH, TYPES > socket_b
Definition: passthrough_target_socket.h:508
tlm_utils::passthrough_target_socket_tagged_b
Definition: passthrough_target_socket.h:270
tlm_utils::passthrough_target_socket_b::process::GetDirectMem_ptr
bool(MODULE::* GetDirectMem_ptr)(transaction_type &, tlm::tlm_dmi &)
Definition: passthrough_target_socket.h:135
tlm_utils::convenience_socket_cb_holder::display_warning
void display_warning(const char *msg) const
Definition: convenience_socket_bases.cc:67
tlm_utils::passthrough_target_socket_b::bw_interface_type
tlm::tlm_bw_transport_if< TYPES > bw_interface_type
Definition: passthrough_target_socket.h:77
gem5::ArmISA::n
Bitfield< 31 > n
Definition: misc_types.hh:455
tlm_utils::passthrough_target_socket_tagged_b::process::set_transport_dbg_user_id
void set_transport_dbg_user_id(int id)
Definition: passthrough_target_socket.h:369
tlm_utils::passthrough_target_socket_tagged_b::process::set_nb_transport_user_id
void set_nb_transport_user_id(int id)
Definition: passthrough_target_socket.h:359
tlm::tlm_base_protocol_types
Definition: fw_bw_ifs.hh:213
tlm_utils::passthrough_target_socket_tagged_b::register_transport_dbg
void register_transport_dbg(MODULE *mod, unsigned int(MODULE::*cb)(int id, transaction_type &), int id)
Definition: passthrough_target_socket.h:320
tlm_utils::passthrough_target_socket_b::base_type
tlm::tlm_target_socket< BUSWIDTH, TYPES, 1, POL > base_type
Definition: passthrough_target_socket.h:78
tlm_utils::passthrough_target_socket_b::fw_interface_type
tlm::tlm_fw_transport_if< TYPES > fw_interface_type
Definition: passthrough_target_socket.h:76
tlm::tlm_sync_enum
tlm_sync_enum
Definition: fw_bw_ifs.hh:48
gem5::ArmISA::id
Bitfield< 33 > id
Definition: misc_types.hh:250
tlm_utils::passthrough_target_socket_tagged_optional::socket_b
passthrough_target_socket_tagged_b< MODULE, BUSWIDTH, TYPES, sc_core::SC_ZERO_OR_MORE_BOUND > socket_b
Definition: passthrough_target_socket.h:523
tlm_utils::passthrough_target_socket_tagged_b::sync_enum_type
tlm::tlm_sync_enum sync_enum_type
Definition: passthrough_target_socket.h:277
tlm_utils::passthrough_target_socket_tagged_b::process::BTransportPtr
void(MODULE::* BTransportPtr)(int id, transaction_type &, sc_core::sc_time &)
Definition: passthrough_target_socket.h:343
tlm::tlm_dmi::set_start_address
void set_start_address(sc_dt::uint64 addr)
Definition: dmi.hh:116
tlm_utils::passthrough_target_socket_b::register_nb_transport_fw
void register_nb_transport_fw(MODULE *mod, sync_enum_type(MODULE::*cb)(transaction_type &, phase_type &, sc_core::sc_time &))
Definition: passthrough_target_socket.h:97
tlm_utils::passthrough_target_socket_tagged_b::process::GetDirectMem_ptr
bool(MODULE::* GetDirectMem_ptr)(int id, transaction_type &, tlm::tlm_dmi &)
Definition: passthrough_target_socket.h:347
tlm_utils::convenience_socket_cb_holder
Definition: convenience_socket_bases.h:69
tlm::tlm_base_target_socket< BUSWIDTH, tlm_fw_transport_if< TYPES >, tlm_bw_transport_if< TYPES >, N, POL >::bind
virtual void bind(base_initiator_socket_type &s)
Definition: target_socket.hh:112
tlm_utils::passthrough_target_socket_tagged_b::process::NBTransportPtr
sync_enum_type(MODULE::* NBTransportPtr)(int id, transaction_type &, phase_type &, sc_core::sc_time &)
Definition: passthrough_target_socket.h:341
tlm_utils::passthrough_target_socket_tagged_b::m_process
process m_process
Definition: passthrough_target_socket.h:499
tlm_utils::passthrough_target_socket_b::default_name
static const char * default_name()
Definition: passthrough_target_socket.h:82
tlm_utils::passthrough_target_socket_tagged_b::register_nb_transport_fw
void register_nb_transport_fw(MODULE *mod, sync_enum_type(MODULE::*cb)(int id, transaction_type &, phase_type &, sc_core::sc_time &), int id)
Definition: passthrough_target_socket.h:300
tlm_utils::passthrough_target_socket_b::process::m_nb_transport_ptr
NBTransportPtr m_nb_transport_ptr
Definition: passthrough_target_socket.h:246
tlm_utils::passthrough_target_socket_tagged_b::process::process
process(passthrough_socket_base *owner)
Definition: passthrough_target_socket.h:350
convenience_socket_bases.h
tlm_utils::passthrough_target_socket_tagged_b::process::set_nb_transport_ptr
void set_nb_transport_ptr(MODULE *mod, NBTransportPtr p)
Definition: passthrough_target_socket.h:380
tlm_utils::passthrough_target_socket_tagged_b::process::m_nb_transport_ptr
NBTransportPtr m_nb_transport_ptr
Definition: passthrough_target_socket.h:485
tlm_utils::passthrough_target_socket_tagged_b::bw_interface_type
tlm::tlm_bw_transport_if< TYPES > bw_interface_type
Definition: passthrough_target_socket.h:279
tlm_utils::passthrough_target_socket_tagged_b::process::m_transport_dbg_user_id
int m_transport_dbg_user_id
Definition: passthrough_target_socket.h:491

Generated on Tue Sep 21 2021 12:25:56 for gem5 by doxygen 1.8.17