summaryrefslogtreecommitdiff
path: root/ext/systemc/src/systemc.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/systemc/src/systemc.h')
-rw-r--r--ext/systemc/src/systemc.h348
1 files changed, 348 insertions, 0 deletions
diff --git a/ext/systemc/src/systemc.h b/ext/systemc/src/systemc.h
new file mode 100644
index 000000000..ccc1285eb
--- /dev/null
+++ b/ext/systemc/src/systemc.h
@@ -0,0 +1,348 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ systemc.h - Top-level include file for the SystemC library with usings.
+
+ Original Author: Stan Y. Liao, Synopsys, Inc.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date: Andy Goodrich, Forte Design Systems, 31 Mar 2005
+ Description of Modification: Changes for namespace support.
+
+ *****************************************************************************/
+
+#ifndef SYSTEMC_H
+#define SYSTEMC_H
+
+// INCLUDE SYSTEM (std) DEFINITIONS:
+
+#include <cassert>
+#include <climits>
+#include <cmath> // math.h?
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <exception>
+#include <fstream>
+#include <iostream>
+#include <memory>
+#include <string>
+#if defined(__sun) || defined(__sun__)
+# include <inttypes.h>
+#elif !defined(WIN32) && !defined(_WIN32)
+# include <stdint.h>
+#endif
+#include <typeinfo>
+#include <utility>
+#include <vector>
+
+// USINGS FOR I/O STREAM SUPPORT:
+
+ using std::ios;
+ using std::streambuf;
+ using std::streampos;
+ using std::streamsize;
+ using std::iostream;
+ using std::istream;
+ using std::ostream;
+ using std::cin;
+ using std::cout;
+ using std::cerr;
+ using std::endl;
+ using std::flush;
+ using std::dec;
+ using std::hex;
+ using std::oct;
+ using std::noshowbase;
+ using std::showbase;
+
+ using std::fstream;
+ using std::ifstream;
+ using std::ofstream;
+
+// from <cstdio>:
+
+ using std::size_t;
+ using std::FILE;
+ using std::fpos_t;
+ using std::fclose;
+ using std::clearerr;
+
+ using std::remove;
+ using std::rename;
+ using std::tmpfile;
+ using std::tmpnam;
+ using std::fflush;
+ using std::fopen;
+ using std::freopen;
+ using std::setbuf;
+ using std::setvbuf;
+ using std::fprintf;
+ using std::fscanf;
+ using std::printf;
+ using std::scanf;
+ using std::sprintf;
+ using std::sscanf;
+ using std::vfprintf;
+ using std::vprintf;
+ using std::vsprintf;
+ using std::fgetc;
+ using std::fgets;
+ using std::fputc;
+ using std::fputs;
+ using std::getc;
+ using std::getchar;
+ using std::gets;
+ using std::putc;
+ using std::putchar;
+ using std::puts;
+ using std::ungetc;
+ using std::fread;
+ using std::fwrite;
+ using std::fgetpos;
+ using std::fseek;
+ using std::fsetpos;
+ using std::ftell;
+ using std::rewind;
+ using std::feof;
+ using std::ferror;
+ using std::perror;
+
+// from <cstdlib>:
+
+ using std::div_t;
+ using std::ldiv_t;
+
+ using std::atof;
+ using std::atoi;
+ using std::atol;
+ using std::strtod;
+ using std::strtol;
+ using std::strtoul;
+ using std::rand;
+ using std::srand;
+ using std::calloc;
+ using std::free;
+ using std::malloc;
+ using std::realloc;
+ using std::abort;
+ using std::atexit;
+ using std::exit;
+ using std::getenv;
+ using std::system;
+ using std::bsearch;
+ using std::qsort;
+ using std::abs;
+ using std::div;
+ using std::labs;
+ using std::ldiv;
+ using std::mblen;
+ using std::mbtowc;
+ using std::mbstowcs;
+#if !defined(__CYGWIN__) && !defined(__CYGWIN32)
+ using std::wctomb;
+ using std::wcstombs;
+#endif
+
+// from <cstring>:
+
+ using std::memcpy;
+ using std::memmove;
+ using std::strcpy;
+ using std::strncpy;
+ using std::strcat;
+ using std::strncat;
+ using std::memcmp;
+ using std::strcmp;
+ using std::strcoll;
+ using std::strncmp;
+ using std::strxfrm;
+ using std::memchr;
+ using std::strchr;
+ using std::strcspn;
+ using std::strpbrk;
+ using std::strrchr;
+ using std::strspn;
+ using std::strstr;
+ using std::strtok;
+ using std::memset;
+ using std::strerror;
+ using std::strlen;
+
+// deprecated strstream support
+#if defined( SC_INCLUDE_STRSTREAM )
+#include <strstream>
+
+ using std::strstream;
+ using std::strstreambuf;
+ using std::istrstream;
+ using std::ostrstream;
+
+#endif // SC_INCLUDE_STRSTREAM
+
+// INCLUDE SYSTEMC DEFINITIONS for sc_dt AND sc_core NAMESPACES:
+
+#include "systemc"
+
+// USINGS FOR THE sc_dt NAMESPACE:
+
+using sc_dt::SC_BIN;
+using sc_dt::SC_BIN_SM;
+using sc_dt::SC_BIN_US;
+using sc_dt::SC_CSD;
+using sc_dt::SC_DEC;
+using sc_dt::SC_HEX;
+using sc_dt::SC_HEX_SM;
+using sc_dt::SC_HEX_US;
+using sc_dt::SC_LOGIC_0;
+using sc_dt::SC_LOGIC_1;
+using sc_dt::SC_LOGIC_X;
+using sc_dt::SC_LOGIC_Z;
+using sc_dt::SC_NOBASE;
+using sc_dt::SC_OCT;
+using sc_dt::SC_OCT_SM;
+using sc_dt::SC_OCT_US;
+using sc_dt::int64;
+using sc_dt::sc_abs;
+using sc_dt::sc_bigint;
+using sc_dt::sc_biguint;
+using sc_dt::sc_bit;
+using sc_dt::sc_bv;
+using sc_dt::sc_bv_base;
+using sc_dt::sc_digit;
+using sc_dt::sc_int;
+using sc_dt::sc_int_base;
+using sc_dt::sc_io_show_base;
+using sc_dt::sc_length_context;
+using sc_dt::sc_length_param;
+using sc_dt::sc_logic;
+using sc_dt::sc_lv;
+using sc_dt::sc_lv_base;
+using sc_dt::sc_max;
+using sc_dt::sc_min;
+using sc_dt::sc_numrep;
+using sc_dt::sc_signed;
+using sc_dt::sc_uint;
+using sc_dt::sc_uint_base;
+using sc_dt::sc_unsigned;
+using sc_dt::uint64;
+// #ifdef SC_DT_DEPRECATED
+using sc_dt::sc_logic_0;
+using sc_dt::sc_logic_1;
+using sc_dt::sc_logic_Z;
+using sc_dt::sc_logic_X;
+// #endif
+
+#ifdef SC_INCLUDE_FX
+ using sc_dt::sc_fxnum;
+ using sc_dt::sc_fxnum_bitref;
+ using sc_dt::sc_fxnum_fast;
+ using sc_dt::sc_fix;
+ using sc_dt::sc_fix_fast;
+ using sc_dt::sc_ufix;
+ using sc_dt::sc_ufix_fast;
+ using sc_dt::sc_fixed;
+ using sc_dt::sc_fixed_fast;
+ using sc_dt::sc_ufixed;
+ using sc_dt::sc_ufixed_fast;
+ using sc_dt::sc_fxval;
+ using sc_dt::sc_fxval_fast;
+ using sc_dt::sc_fxcast_switch;
+ using sc_dt::sc_fxcast_context;
+ using sc_dt::sc_fxtype_params;
+ using sc_dt::sc_fxtype_context;
+ using sc_dt::sc_q_mode;
+ using sc_dt::SC_RND;
+ using sc_dt::SC_RND_ZERO;
+ using sc_dt::SC_RND_MIN_INF;
+ using sc_dt::SC_RND_INF;
+ using sc_dt::SC_RND_CONV;
+ using sc_dt::SC_TRN;
+ using sc_dt::SC_TRN_ZERO;
+ using sc_dt::sc_o_mode;
+ using sc_dt::SC_SAT;
+ using sc_dt::SC_SAT_ZERO;
+ using sc_dt::SC_SAT_SYM;
+ using sc_dt::SC_WRAP;
+ using sc_dt::SC_WRAP_SM;
+ using sc_dt::sc_switch;
+ using sc_dt::SC_OFF;
+ using sc_dt::SC_ON;
+ using sc_dt::sc_fmt;
+ using sc_dt::SC_F;
+ using sc_dt::SC_E;
+ using sc_dt::sc_context_begin;
+ using sc_dt::SC_NOW;
+ using sc_dt::SC_LATER;
+#endif // SC_INCLUDE_FX
+
+#if 0 // defined( _MSC_VER ) // supported versions of MSVC should support ADL
+
+ using sc_dt::equal;
+ using sc_dt::not_equal;
+ using sc_dt::b_not;
+ using sc_dt::b_and;
+ using sc_dt::b_or;
+ using sc_dt::b_xor;
+ using sc_dt::lrotate;
+ using sc_dt::rrotate;
+ using sc_dt::reverse;
+ using sc_dt::concat;
+ using sc_dt::and_reduce;
+ using sc_dt::or_reduce;
+ using sc_dt::xor_reduce;
+ using sc_dt::nand_reduce;
+ using sc_dt::nor_reduce;
+ using sc_dt::xnor_reduce;
+
+#endif // defined( _MSC_VER )
+
+
+// USINGS FOR sc_core:
+//
+// The explicit using for ::sc_core::wait is to remove an ambiguity with
+// the constructor for the system's union wait on Unix and Linux. This
+// causes problems with aCC, so users of aCC should explicitly select
+// the SystemC wait functions using ::sc_core::wait(...). This is actually
+// a good idea for SystemC programmers in general.
+
+using namespace sc_core;
+
+#if !defined( __HP_aCC )
+ using ::sc_core::wait;
+#endif // !defined( __HP_aCC )
+
+#ifdef SC_USE_SC_STRING_OLD
+ using sc_dt::sc_string_old;
+ typedef sc_dt::sc_string_old sc_string;
+#endif
+#ifdef SC_USE_STD_STRING
+ typedef ::std::string sc_string;
+#endif
+
+#endif