sc_machine.h revision 12027
1/*****************************************************************************
2
3  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
4  more contributor license agreements.  See the NOTICE file distributed
5  with this work for additional information regarding copyright ownership.
6  Accellera licenses this file to you under the Apache License, Version 2.0
7  (the "License"); you may not use this file except in compliance with the
8  License.  You may obtain a copy of the License at
9
10    http://www.apache.org/licenses/LICENSE-2.0
11
12  Unless required by applicable law or agreed to in writing, software
13  distributed under the License is distributed on an "AS IS" BASIS,
14  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15  implied.  See the License for the specific language governing
16  permissions and limitations under the License.
17
18 *****************************************************************************/
19
20/*****************************************************************************
21
22  sc_machine.h -- Machine-dependent Environment Settings
23
24  Original Author: Andy Goodrich, Forte Design Systems, Inc.
25
26  CHANGE LOG AT END OF FILE
27 *****************************************************************************/
28
29
30#ifndef SC_MACHINE_H
31#define SC_MACHINE_H
32
33#include <climits>
34//#include "sysc/packages/boost/detail/endian.hpp"
35
36// We stripped the boost include and assume a build on x86
37#define SC_BOOST_LITTLE_ENDIAN
38
39// ----------------------------------------------------------------------------
40//  Little or big endian machine?
41// ----------------------------------------------------------------------------
42
43#if defined( SC_BOOST_LITTLE_ENDIAN )
44#   define SC_LITTLE_ENDIAN
45#elif defined( SC_BOOST_BIG_ENDIAN )
46#   define SC_BIG_ENDIAN
47#else
48#   error "Could not detect the endianness of the CPU."
49#endif
50
51// ----------------------------------------------------------------------------
52//  Are long data types 32-bit or 64-bit?
53// ----------------------------------------------------------------------------
54
55#if ULONG_MAX > 0xffffffffUL
56#   define SC_LONG_64
57#endif
58
59// $Log: sc_machine.h,v $
60// Revision 1.5  2011/08/26 22:58:23  acg
61//  Torsten Maehne: changes for endian detection.
62//
63// Revision 1.4  2011/08/26 20:46:18  acg
64//  Andy Goodrich: moved the modification log to the end of the file to
65//  eliminate source line number skew when check-ins are done.
66//
67// Revision 1.3  2011/02/18 20:38:44  acg
68//  Andy Goodrich: Updated Copyright notice.
69//
70// Revision 1.2  2010/09/06 16:35:09  acg
71//  Andy Goodrich: changed i386 to __i386__ in ifdef.
72//
73// Revision 1.1.1.1  2006/12/15 20:20:06  acg
74// SystemC 2.3
75//
76// Revision 1.3  2006/01/13 18:53:10  acg
77// Andy Goodrich: Added $Log command so that CVS comments are reproduced in
78// the source.
79//
80
81#endif // !defined(SC_MACHINE_H)
82