PLCnext API Documentation 25.0.2.69
ArchitectureConfig.h
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
7#include "boost/config.hpp"
8
9#ifndef ARP_USE_ARP_SYSTEM_CORE
10
11// nothing to include here, included by Arp.hpp
12
13#else
14
15#ifndef ARP_INSIDE_ARP_H
16 #error Never include 'ArchitectureConfig.h' directly, just include 'Arp.h'
17#endif
18
19// define ARP_BIG_ENDIAN via project settings or from compiler settings for big endian targets
20
21#ifdef ARP_DOXIFY
22
43
44
46 #define ARP_BIG_ENDIAN
47
50
52
54 #define ARP_ARCHITECTURE_X86
55
57 #define ARP_ARCHITECTURE_X64
58
60 #define ARP_ARCHITECTURE_ARM
61
63 #define ARP_ARCHITECTURE_ARM64
64
66 #define ARP_ARCHITECTURE_ARMTHUMB
67
79 #define ARP_DATAMODEL
80
81#endif // ARP_DOXIFY
82
83
86#define ARP_DATAMODEL_ILP32 10
87
90#define ARP_DATAMODEL_ILP32_64 11
91
94#define ARP_DATAMODEL_ILP64 20
95
98#define ARP_DATAMODEL_P64 21
99
102#define ARP_DATAMODEL_LLP64 21 // same as ARP_DATAMODEL_P64
103
104
105// define architecture and data model
106#if defined(_M_IX86) || defined(_X86_) || defined(i386) || defined(__i386) || defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__)
107
108 #define ARP_ARCHITECTURE_X86
109 #define ARP_DATAMODEL ARP_DATAMODEL_ILP32
110
111#elif defined(_M_X64) || defined(__x86_64) || defined(__x86_64__)
112
113 #define ARP_ARCHITECTURE_X64
114 #define ARP_DATAMODEL ARP_DATAMODEL_LLP64
115
116#elif !defined(__thumb__) && (defined(_M_ARM) || defined(__arm__) || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7__) || defined(__TARGET_ARCH_ARM))
117
118 #define ARP_ARCHITECTURE_ARM
119 #define ARP_DATAMODEL ARP_DATAMODEL_ILP32
120
121#elif defined(__thumb__) && (defined(_M_ARM) || defined(__arm__) || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7__) || defined(__TARGET_ARCH_ARM))
122
123 #define ARP_ARCHITECTURE_ARMTHUMB
124 #define ARP_DATAMODEL ARP_DATAMODEL_ILP32
125
126#elif defined(__aarch64__)
127
128 #define ARP_ARCHITECTURE_ARM64
129 #define ARP_DATAMODEL ARP_DATAMODEL_ILP64
130
131#else
132
133 #error "CPU platform is not supported"
134
135#endif
136
137#endif // ndef ARP_USE_ARP_SYSTEM_CORE