SST
14.0.0
StructuralSimulationToolkit
sst_types.h
1
// Copyright 2009-2024 NTESS. Under the terms
2
// of Contract DE-NA0003525 with NTESS, the U.S.
3
// Government retains certain rights in this software.
4
//
5
// Copyright (c) 2009-2024, NTESS
6
// All rights reserved.
7
//
8
// This file is part of the SST software package. For license
9
// information, see the LICENSE file in the top level directory of the
10
// distribution.
11
12
#ifndef SST_CORE_SST_TYPES_H
13
#define SST_CORE_SST_TYPES_H
14
15
#include <cstdint>
16
#include <limits>
17
18
namespace
SST
{
19
20
typedef
uint64_t ComponentId_t;
21
typedef
uint64_t StatisticId_t;
22
typedef
uint32_t LinkId_t;
23
typedef
uint64_t HandlerId_t;
24
typedef
uint64_t Cycle_t;
25
typedef
uint64_t SimTime_t;
26
typedef
double
Time_t;
27
28
#define PRI_SIMTIME PRIu64
29
30
static
constexpr StatisticId_t STATALL_ID = std::numeric_limits<StatisticId_t>::max();
31
32
#define MAX_SIMTIME_T 0xFFFFFFFFFFFFFFFFl
33
34
/* Subcomponent IDs are in the high-16 bits of the Component ID */
35
#define UNSET_COMPONENT_ID 0xFFFFFFFFFFFFFFFFULL
36
#define UNSET_STATISTIC_ID 0xFFFFFFFFFFFFFFFFULL
37
#define COMPONENT_ID_BITS 32
38
#define COMPONENT_ID_MASK(x) ((x)&0xFFFFFFFFULL)
39
#define SUBCOMPONENT_ID_BITS 16
40
#define SUBCOMPONENT_ID_MASK(x) ((x) >> COMPONENT_ID_BITS)
41
#define SUBCOMPONENT_ID_CREATE(compId, sCompId) ((((uint64_t)sCompId) << COMPONENT_ID_BITS) | compId)
42
#define CONFIG_COMPONENT_ID_BITS (COMPONENT_ID_BITS + SUBCOMPONENT_ID_BITS)
43
#define CONFIG_COMPONENT_ID_MASK(x) ((x)&0xFFFFFFFFFFFFULL)
44
#define STATISTIC_ID_CREATE(compId, statId) ((((uint64_t)statId) << CONFIG_COMPONENT_ID_BITS) | compId)
45
#define COMPDEFINED_SUBCOMPONENT_ID_MASK(x) ((x) >> 63)
46
#define COMPDEFINED_SUBCOMPONENT_ID_CREATE(compId, sCompId) \
47
((((uint64_t)sCompId) << COMPONENT_ID_BITS) | compId | 0x8000000000000000ULL)
48
49
typedef
double
watts;
50
typedef
double
joules;
51
typedef
double
farads;
52
typedef
double
volts;
53
54
#ifndef LIKELY
55
#define LIKELY(x) __builtin_expect((int)(x), 1)
56
#define UNLIKELY(x) __builtin_expect((int)(x), 0)
57
#endif
58
59
enum class
SimulationRunMode {
60
UNKNOWN,
/*!< Unknown mode - Invalid for running */
61
INIT,
/*!< Initialize-only. Useful for debugging initialization and graph generation */
62
RUN,
/*!< Run-only. Useful when restoring from a checkpoint (not currently supported) */
63
BOTH
/*!< Default. Both initialize and Run the simulation */
64
};
65
66
}
// namespace SST
67
68
#endif // SST_CORE_SST_TYPES_H
SST
Definition:
action.cc:18
src
sst
core
sst_types.h
Generated on Fri May 24 2024 13:16:22 for SST by
1.8.14