PLCnext API Documentation 24.0.0.71
ArchitectureConfig.h
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
7#include "boost/config.hpp"
8
9#ifndef ARP_INSIDE_ARP_H
10 #error Never include 'ArchitectureConfig.h' directly, just include 'Arp.h'
11#endif
12
13// TODO(TDr TGe): review this code
14// define ARP_BIG_ENDIAN via project settings or from compiler settings for big endian targets
15
16#ifdef ARP_DOXIFY
17
38
39
41 #define ARP_BIG_ENDIAN
42
45
47
49 #define ARP_ARCHITECTURE_X86
50
52 #define ARP_ARCHITECTURE_X64
53
55 #define ARP_ARCHITECTURE_ARM
56
58 #define ARP_ARCHITECTURE_ARM64
59
61 #define ARP_ARCHITECTURE_ARMTHUMB
62
74 #define ARP_DATAMODEL
75
76#endif // ARP_DOXIFY
77
78
81#define ARP_DATAMODEL_ILP32 10
82
85#define ARP_DATAMODEL_ILP32_64 11
86
89#define ARP_DATAMODEL_ILP64 20
90
93#define ARP_DATAMODEL_P64 21
94
97#define ARP_DATAMODEL_LLP64 21 // same as ARP_DATAMODEL_P64
98
99
100// define architecture and data model
101#if defined(_M_IX86) || defined(_X86_) || defined(i386) || defined(__i386) || defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__)
102
103 #define ARP_ARCHITECTURE_X86
104 #define ARP_DATAMODEL ARP_DATAMODEL_ILP32
105
106#elif defined(_M_X64) || defined(__x86_64) || defined(__x86_64__)
107
108 #define ARP_ARCHITECTURE_X64
109 #define ARP_DATAMODEL ARP_DATAMODEL_LLP64
110
111#elif !defined(__thumb__) && (defined(_M_ARM) || defined(__arm__) || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7__) || defined(__TARGET_ARCH_ARM))
112
113 #define ARP_ARCHITECTURE_ARM
114 #define ARP_DATAMODEL ARP_DATAMODEL_ILP32
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_ARMTHUMB
119 #define ARP_DATAMODEL ARP_DATAMODEL_ILP32
120
121#elif defined(__aarch64__)
122
123 #define ARP_ARCHITECTURE_ARM64
124 #define ARP_DATAMODEL ARP_DATAMODEL_ILP64
125
126#else
127
128 #error "CPU platform is not supported"
129
130#endif
131
132
133
134
135