summaryrefslogtreecommitdiff
path: root/src/systemc/ext/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/ext/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h')
-rw-r--r--src/systemc/ext/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h169
1 files changed, 79 insertions, 90 deletions
diff --git a/src/systemc/ext/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h b/src/systemc/ext/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h
index 4c1340338..2cd919bd2 100644
--- a/src/systemc/ext/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h
+++ b/src/systemc/ext/tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_core_ifs.h
@@ -17,133 +17,122 @@
*****************************************************************************/
-//
-// Note to the LRM writer : This is the core of the TLM standard
-//
-
-
-#ifndef __TLM_CORE_IFS_H__
-#define __TLM_CORE_IFS_H__
-
-//#include <systemc>
+#ifndef \
+ __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_REQ_RSP_TLM1_INTERFACES_TLM_CORE_IFS_H__
+#define \
+ __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_REQ_RSP_TLM1_INTERFACES_TLM_CORE_IFS_H__
#include "tlm_core/tlm_1/tlm_req_rsp/tlm_1_interfaces/tlm_tag.h"
-namespace tlm {
-
-// bidirectional blocking interfaces
+namespace tlm
+{
-template < typename REQ , typename RSP >
+// Bidirectional blocking interfaces.
+template <typename REQ, typename RSP>
class tlm_transport_if : public virtual sc_core::sc_interface
{
-public:
- virtual RSP transport( const REQ & ) = 0;
-
- virtual void transport( const REQ &req , RSP &rsp ) {
- rsp = transport( req );
- }
-
+ public:
+ virtual RSP transport(const REQ &) = 0;
+
+ virtual void
+ transport(const REQ &req, RSP &rsp)
+ {
+ rsp = transport(req);
+ }
};
-
-// uni-directional blocking interfaces
-
-template < typename T >
+// Uni-directional blocking interfaces.
+template <typename T>
class tlm_blocking_get_if : public virtual sc_core::sc_interface
{
-public:
- virtual T get( tlm_tag<T> *t = 0 ) = 0;
- virtual void get( T &t ) { t = get(); }
-
+ public:
+ virtual T get(tlm_tag<T> *t=nullptr) = 0;
+ virtual void get(T &t) { t = get(); }
};
-template < typename T >
+template <typename T>
class tlm_blocking_put_if : public virtual sc_core::sc_interface
{
-public:
- virtual void put( const T &t ) = 0;
+ public:
+ virtual void put(const T &t) = 0;
};
-// uni-directional non blocking interfaces
+// Uni-directional non blocking interfaces.
-template < typename T >
+template <typename T>
class tlm_nonblocking_get_if : public virtual sc_core::sc_interface
{
-public:
- virtual bool nb_get( T &t ) = 0;
- virtual bool nb_can_get( tlm_tag<T> *t = 0 ) const = 0;
- virtual const sc_core::sc_event &ok_to_get( tlm_tag<T> *t = 0 ) const = 0;
+ public:
+ virtual bool nb_get(T &t) = 0;
+ virtual bool nb_can_get(tlm_tag<T> *t=nullptr) const = 0;
+ virtual const sc_core::sc_event &
+ ok_to_get(tlm_tag<T> *t=nullptr) const = 0;
};
-template < typename T >
+template <typename T>
class tlm_nonblocking_put_if : public virtual sc_core::sc_interface
{
-public:
- virtual bool nb_put( const T &t ) = 0;
- virtual bool nb_can_put( tlm_tag<T> *t = 0 ) const = 0;
- virtual const sc_core::sc_event &ok_to_put( tlm_tag<T> *t = 0 ) const = 0;
+ public:
+ virtual bool nb_put(const T &t) = 0;
+ virtual bool nb_can_put(tlm_tag<T> *t=nullptr) const = 0;
+ virtual const sc_core::sc_event &
+ ok_to_put(tlm_tag<T> *t=nullptr) const = 0;
};
+// Combined uni-directional blocking and non blocking.
+template <typename T>
+class tlm_get_if : public virtual tlm_blocking_get_if<T>,
+ public virtual tlm_nonblocking_get_if<T>
+{};
-// combined uni-directional blocking and non blocking
+template <typename T>
+class tlm_put_if : public virtual tlm_blocking_put_if<T>,
+ public virtual tlm_nonblocking_put_if<T>
+{};
-template < typename T >
-class tlm_get_if :
- public virtual tlm_blocking_get_if< T > ,
- public virtual tlm_nonblocking_get_if< T > {};
-
-template < typename T >
-class tlm_put_if :
- public virtual tlm_blocking_put_if< T > ,
- public virtual tlm_nonblocking_put_if< T > {};
-
-
-// peek interfaces
-
-template < typename T >
+// Peek interfaces.
+template <typename T>
class tlm_blocking_peek_if : public virtual sc_core::sc_interface
{
-public:
- virtual T peek( tlm_tag<T> *t = 0 ) const = 0;
- virtual void peek( T &t ) const { t = peek(); }
-
+ public:
+ virtual T peek(tlm_tag<T> *t=nullptr) const = 0;
+ virtual void peek(T &t) const { t = peek(); }
};
-template < typename T >
+template <typename T>
class tlm_nonblocking_peek_if : public virtual sc_core::sc_interface
{
-public:
- virtual bool nb_peek( T &t ) const = 0;
- virtual bool nb_can_peek( tlm_tag<T> *t = 0 ) const = 0;
- virtual const sc_core::sc_event &ok_to_peek( tlm_tag<T> *t = 0 ) const = 0;
+ public:
+ virtual bool nb_peek(T &t) const = 0;
+ virtual bool nb_can_peek(tlm_tag<T> *t=nullptr) const = 0;
+ virtual const sc_core::sc_event &
+ ok_to_peek(tlm_tag<T> *t=nullptr) const = 0;
};
-template < typename T >
+template <typename T>
class tlm_peek_if :
- public virtual tlm_blocking_peek_if< T > ,
- public virtual tlm_nonblocking_peek_if< T > {};
-
-// get_peek interfaces
-
-template < typename T >
-class tlm_blocking_get_peek_if :
- public virtual tlm_blocking_get_if<T> ,
- public virtual tlm_blocking_peek_if<T> {};
-
-template < typename T >
-class tlm_nonblocking_get_peek_if :
- public virtual tlm_nonblocking_get_if<T> ,
- public virtual tlm_nonblocking_peek_if<T> {};
-
-
-template < typename T >
-class tlm_get_peek_if :
- public virtual tlm_get_if<T> ,
- public virtual tlm_peek_if<T> ,
- public virtual tlm_blocking_get_peek_if<T> ,
- public virtual tlm_nonblocking_get_peek_if<T>
- {};
+ public virtual tlm_blocking_peek_if<T>,
+ public virtual tlm_nonblocking_peek_if<T>
+{};
+
+// Get_peek interfaces.
+template <typename T>
+class tlm_blocking_get_peek_if : public virtual tlm_blocking_get_if<T>,
+ public virtual tlm_blocking_peek_if<T>
+{};
+
+template <typename T>
+class tlm_nonblocking_get_peek_if : public virtual tlm_nonblocking_get_if<T>,
+ public virtual tlm_nonblocking_peek_if<T>
+{};
+
+template <typename T>
+class tlm_get_peek_if : public virtual tlm_get_if<T>,
+ public virtual tlm_peek_if<T>, public virtual tlm_blocking_get_peek_if<T>,
+ public virtual tlm_nonblocking_get_peek_if<T>
+{};
} // namespace tlm
#endif
+/* __SYSTEMC_EXT_TLM_CORE_TLM_1_TLM_REQ_RSP_TLM1_INTERFACES_TLM_CORE_IFS_H__ */