diff options
Diffstat (limited to 'ext/systemc/src/sysc/kernel/sc_ver.h')
-rw-r--r-- | ext/systemc/src/sysc/kernel/sc_ver.h | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/ext/systemc/src/sysc/kernel/sc_ver.h b/ext/systemc/src/sysc/kernel/sc_ver.h new file mode 100644 index 000000000..34112f9f8 --- /dev/null +++ b/ext/systemc/src/sysc/kernel/sc_ver.h @@ -0,0 +1,186 @@ +/***************************************************************************** + + 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. + + *****************************************************************************/ + +/***************************************************************************** + + sc_ver.h -- Version and copyright information. + + Original Author: Stan Y. Liao, Synopsys, Inc. + + NO AUTOMATIC CHANGE LOG IS GENERATED, EXPLICIT CHANGE LOG AT END OF FILE + *****************************************************************************/ + + +#ifndef SC_VER_H +#define SC_VER_H + +#include "sysc/kernel/sc_macros.h" // SC_CONCAT_UNDERSCORE_ + // SC_STRINGIFY_HELPER_ +#include "sysc/communication/sc_writer_policy.h" // SC_DEFAULT_WRITER_POLICY + +#include <string> + +namespace sc_core { + +extern const char* sc_copyright(); +extern const char* sc_release(); +extern const char* sc_version(); + +extern const unsigned int sc_version_major; +extern const unsigned int sc_version_minor; +extern const unsigned int sc_version_patch; + +extern const std::string sc_version_originator; +extern const std::string sc_version_release_date; +extern const std::string sc_version_prerelease; +extern const bool sc_is_prerelease; +extern const std::string sc_version_string; +extern const std::string sc_copyright_string; + +#define SYSTEMC_2_3_1 + +#define SYSTEMC_VERSION 20140417 +#define SC_VERSION_ORIGINATOR "Accellera" +#define SC_VERSION_MAJOR 2 +#define SC_VERSION_MINOR 3 +#define SC_VERSION_PATCH 1 +#define SC_IS_PRERELEASE 0 + +/// compliancy with IEEE 1666-2011 (see 8.6.5) +#define IEEE_1666_SYSTEMC 201101L + +#define SC_COPYRIGHT \ + "Copyright (c) 1996-2014 by all Contributors,\n" \ + "ALL RIGHTS RESERVED\n" + + +#define SC_VERSION_RELEASE_DATE \ + SC_STRINGIFY_HELPER_( SYSTEMC_VERSION ) + +#if ( SC_IS_PRERELEASE == 1 ) +# define SC_VERSION_PRERELEASE "pub_rev" +# define SC_VERSION \ + SC_STRINGIFY_HELPER_( SC_VERSION_MAJOR.SC_VERSION_MINOR.SC_VERSION_PATCH ) \ + "_" SC_VERSION_PRERELEASE "_" SC_VERSION_RELEASE_DATE \ + "-" SC_VERSION_ORIGINATOR +#else +# define SC_VERSION_PRERELEASE "" // nothing +# define SC_VERSION \ + SC_STRINGIFY_HELPER_( SC_VERSION_MAJOR.SC_VERSION_MINOR.SC_VERSION_PATCH ) \ + "-" SC_VERSION_ORIGINATOR +#endif + +// THIS CLASS AND STATIC INSTANCE BELOW DETECTS BAD REV OBJECTS AT LINK TIME +// +// Each source file which includes this file for the current SystemC version +// will have a static instance of the class sc_api_version_XXX defined +// in it. That object instance will cause the constructor below +// to be invoked. If the version of the SystemC being linked against +// does not contain the constructor below a linkage error will occur. + +#define SC_API_VERSION_STRING \ + SC_CONCAT_UNDERSCORE_( sc_api_version, \ + SC_CONCAT_UNDERSCORE_( SC_VERSION_MAJOR, \ + SC_CONCAT_UNDERSCORE_( SC_VERSION_MINOR, \ + SC_VERSION_PATCH ) ) ) + +// explicitly avoid macro expansion +#define SC_API_DEFINED_( Symbol ) \ + Symbol ## _DEFINED_ +#define SC_API_UNDEFINED_( Symbol ) \ + Symbol ## _UNDEFINED_ + +// Some preprocessor switches need to be consistent between the application +// and the library (e.g. if sizes of classes are affected or other parts of +// the ABI are affected). (Some of) these are checked here at link-time as +// well, by setting template parameters to sc_api_version_XXX, while only +// one variant is defined in sc_ver.cpp. + +#if 0 // don't enforce check of DEBUG_SYSTEMC for now +// DEBUG_SYSTEMC +#if defined( DEBUG_SYSTEMC ) +# define DEBUG_SYSTEMC_CHECK_ \ + SC_CONFIG_DEFINED_(DEBUG_SYSTEMC) +#else +# define DEBUG_SYSTEMC_CHECK_ \ + SC_CONFIG_UNDEFINED_(DEBUG_SYSTEMC) +#endif +extern const int DEBUG_SYSTEMC_CHECK_; +#endif + +// SC_DISABLE_VIRTUAL_BIND +#if defined( SC_DISABLE_VIRTUAL_BIND ) +# define SC_DISABLE_VIRTUAL_BIND_CHECK_ \ + SC_API_DEFINED_(SC_DISABLE_VIRTUAL_BIND) +#else +# define SC_DISABLE_VIRTUAL_BIND_CHECK_ \ + SC_API_UNDEFINED_(SC_DISABLE_VIRTUAL_BIND) +#endif +extern const int SC_DISABLE_VIRTUAL_BIND_CHECK_; + +// Some preprocessor switches need to be consistent between different +// translation units of an application. Those can't be easily checked +// during link-time. Instead, perform a check during run-time by +// passing the value to the constructor of the api_version_check object. + +// Note: Template and constructor parameters are not passed as default +// values to avoid ODR violations in the check itself. + +template // use pointers for more verbose error messages +< +// const int * DebugSystemC, + const int * DisableVirtualBind +> +struct SC_API_VERSION_STRING +{ + SC_API_VERSION_STRING + ( + // SC_DEFAULT_WRITER_POLICY + sc_writer_policy default_writer_policy + ); +}; + +#if !defined( SC_DISABLE_API_VERSION_CHECK ) // disabled in sc_ver.cpp +static +SC_API_VERSION_STRING +< +// & DEBUG_SYSTEMC_CHECK_, + & SC_DISABLE_VIRTUAL_BIND_CHECK_ +> +api_version_check +( + SC_DEFAULT_WRITER_POLICY +); +#endif // SC_DISABLE_API_VERSION_CHECK + +//#undef SC_API_DEFINED_ +//#undef SC_API_UNDEFINED_ + +} // namespace sc_core + +/***************************************************************************** + + MODIFICATION LOG - modifiers, enter your name, affiliation, date and + changes you are making here. + + Name, Affiliation, Date: + Description of Modification: + + *****************************************************************************/ +#endif |