1/* 2 * Copyright 2018 Google, Inc. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer; 8 * redistributions in binary form must reproduce the above copyright --- 15 unchanged lines hidden (view full) --- 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 * 27 * Authors: Gabe Black 28 */ 29 30 31#include "base/logging.hh" |
32#include "systemc/core/module.hh" |
33#include "systemc/ext/core/sc_module_name.hh" 34 35namespace sc_core 36{ 37 38sc_module_name::sc_module_name(const char *name) : |
39 _name(name), _gem5_module(new SystemC::Module(name)), _on_the_stack(true) |
40{ |
41 _gem5_module->push(); |
42} 43 44sc_module_name::sc_module_name(const sc_module_name &other) : |
45 _name(other._name), _gem5_module(other._gem5_module), _on_the_stack(false) |
46{} 47 48sc_module_name::~sc_module_name() 49{ 50 if (_on_the_stack) { |
51 _gem5_module->pop(); |
52 } 53} 54 55sc_module_name::operator const char *() const 56{ 57 return _name; 58} 59 60} // namespace sc_core |