12#ifndef SST_CORE_SST_TYPES_H
13#define SST_CORE_SST_TYPES_H
20using ComponentId_t = uint64_t;
21using StatisticId_t = uint64_t;
22using LinkId_t = uint32_t;
23using HandlerId_t = uint64_t;
24using Cycle_t = uint64_t;
25using SimTime_t = uint64_t;
28#define PRI_SIMTIME PRIu64
30static constexpr StatisticId_t STATALL_ID = std::numeric_limits<StatisticId_t>::max();
32#define MAX_SIMTIME_T 0xFFFFFFFFFFFFFFFFl
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)
55#define LIKELY(x) __builtin_expect((int)(x), 1)
56#define UNLIKELY(x) __builtin_expect((int)(x), 0)
59enum class SimulationRunMode {
72struct AttachPointMetaData
74 AttachPointMetaData() {}
75 virtual ~AttachPointMetaData() {}