Skip to content

Commit 3db02b1

Browse files
committed
Add CAPSTONE_AARCH64_COMPAT_HEADER toggle
1 parent 1fe84c6 commit 3db02b1

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ set(HEADERS_ENGINE
147147

148148
set(HEADERS_COMMON
149149
include/capstone/aarch64.h
150+
include/capstone/arm64.h
150151
include/capstone/arm.h
151152
include/capstone/capstone.h
152153
include/capstone/cs_operand.h

include/capstone/capstone.h

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ extern "C" {
6161
#define CS_VERSION_MINOR CS_API_MINOR
6262
#define CS_VERSION_EXTRA 0
6363

64+
#ifndef CAPSTONE_AARCH64_COMPAT_HEADER
6465
/// Macro for meta programming.
6566
/// Meant for projects using Capstone and need to support multiple
6667
/// versions of it.
@@ -119,6 +120,7 @@ extern "C" {
119120
#define CS_aarch64_shifter() aarch64_shifter
120121
#define CS_aarch64_vas() AArch64Layout_VectorLayout
121122
#endif
123+
#endif // CAPSTONE_AARCH64_COMPAT_HEADER
122124

123125
/// Macro to create combined version which can be compared to
124126
/// result of cs_version() API.
@@ -133,7 +135,11 @@ typedef size_t csh;
133135
/// Architecture type
134136
typedef enum cs_arch {
135137
CS_ARCH_ARM = 0, ///< ARM architecture (including Thumb, Thumb-2)
136-
CS_ARCH_AARCH64, ///< AArch64
138+
#ifdef CAPSTONE_AARCH64_COMPAT_HEADER
139+
CS_ARCH_ARM64 = 1, ///< ARM64
140+
#else
141+
CS_ARCH_AARCH64 = 1, ///< AArch64
142+
#endif
137143
CS_ARCH_MIPS, ///< Mips architecture
138144
CS_ARCH_X86, ///< X86 architecture (including x86 & x86-64)
139145
CS_ARCH_PPC, ///< PowerPC architecture
@@ -354,7 +360,11 @@ typedef struct cs_opt_skipdata {
354360

355361

356362
#include "arm.h"
363+
#ifdef CAPSTONE_AARCH64_COMPAT_HEADER
364+
#include "arm64.h"
365+
#else
357366
#include "aarch64.h"
367+
#endif
358368
#include "m68k.h"
359369
#include "mips.h"
360370
#include "ppc.h"
@@ -399,7 +409,11 @@ typedef struct cs_detail {
399409
/// Architecture-specific instruction info
400410
union {
401411
cs_x86 x86; ///< X86 architecture, including 16-bit, 32-bit & 64-bit mode
402-
cs_aarch64 aarch64; ///< AARCH64 architecture (aka AArch64)
412+
#ifdef CAPSTONE_AARCH64_COMPAT_HEADER
413+
cs_arm64 arm64;
414+
#else
415+
cs_aarch64 aarch64; ///< AArch6464 architecture (aka ARM64)
416+
#endif
403417
cs_arm arm; ///< ARM architecture (including Thumb/Thumb2)
404418
cs_m68k m68k; ///< M68K architecture
405419
cs_mips mips; ///< MIPS architecture
@@ -526,6 +540,9 @@ CAPSTONE_EXPORT
526540
void CAPSTONE_API cs_arch_register_arm(void);
527541
CAPSTONE_EXPORT
528542
void CAPSTONE_API cs_arch_register_aarch64(void);
543+
#ifdef CAPSTONE_AARCH64_COMPAT_HEADER
544+
#define cs_arch_register_aarch64 cs_arch_register_arm64
545+
#endif
529546
CAPSTONE_EXPORT
530547
void CAPSTONE_API cs_arch_register_mips(void);
531548
CAPSTONE_EXPORT

0 commit comments

Comments
 (0)