summaryrefslogtreecommitdiff
path: root/src/systemc/tests/tlm/static_extensions/ext2gp2ext/my_extension.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/tests/tlm/static_extensions/ext2gp2ext/my_extension.h')
-rw-r--r--src/systemc/tests/tlm/static_extensions/ext2gp2ext/my_extension.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/systemc/tests/tlm/static_extensions/ext2gp2ext/my_extension.h b/src/systemc/tests/tlm/static_extensions/ext2gp2ext/my_extension.h
new file mode 100644
index 000000000..650931cd1
--- /dev/null
+++ b/src/systemc/tests/tlm/static_extensions/ext2gp2ext/my_extension.h
@@ -0,0 +1,56 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+#ifndef __MY_EXTENSION_H__
+#define __MY_EXTENSION_H__
+
+#include "tlm.h"
+#include <cassert>
+
+class my_extension :
+ public tlm::tlm_extension<my_extension>
+{
+public:
+ my_extension()
+ : m_data(0)
+ {}
+ tlm_extension_base* clone() const
+ {
+ return new my_extension(*this);
+ }
+ void free()
+ {
+ delete this;
+ }
+ void copy_from(tlm_extension_base const & e)
+ {
+ sc_assert(typeid(this) == typeid(e));
+ m_data = static_cast<my_extension const &>(e).m_data;
+ }
+
+ int m_data;
+};
+
+struct my_extended_payload_types
+{
+ typedef tlm::tlm_base_protocol_types::tlm_payload_type tlm_payload_type;
+ typedef tlm::tlm_base_protocol_types::tlm_phase_type tlm_phase_type;
+};
+
+#endif