rizin/librz/arch/deprecated_arch_helper.h
Giovanni b5fee3471c
Move RzAnalysis as private and force usage of C API (#6123)
* Hide RzAnalysis structure to force the usage of the C APIs.

* Fix rop code & test

* Fix linter

* Fix rz_analysis_free to return void
2026-04-06 16:07:53 +00:00

56 lines
No EOL
1.5 KiB
C

// SPDX-FileCopyrightText: 2024 RizinOrg <info@rizin.re>
// SPDX-FileCopyrightText: 2024 deroad <wargio@libero.it>
// SPDX-License-Identifier: LGPL-3.0-only
#ifndef DEPRECATED_ARCH_HELPER_H
#define DEPRECATED_ARCH_HELPER_H
#include <rz_arch.h>
#include "analysis_private.h"
#include "asm_private.h"
#define DEPRECATED_OLD_ARCH_PLUGIN(name) \
RzArchPlugin rz_arch_plugin_##name = { \
.p_asm = &rz_asm_plugin_##name, \
.p_analysis = &rz_analysis_plugin_##name, \
.p_parse = &rz_parse_plugin_##name##_pseudo, \
}
#define DEPRECATED_OLD_ARCH_NO_PARSE_PLUGIN(name) \
RzArchPlugin rz_arch_plugin_##name = { \
.p_asm = &rz_asm_plugin_##name, \
.p_analysis = &rz_analysis_plugin_##name, \
.p_parse = NULL, \
}
#define DEPRECATED_OLD_ARCH_ASM_ONLY_PLUGIN(name) \
RzArchPlugin rz_arch_plugin_##name = { \
.p_asm = &rz_asm_plugin_##name, \
.p_analysis = NULL, \
.p_parse = NULL, \
}
#ifndef RZ_PLUGIN_INCORE
#define ARCH_PLUGIN_LIB_STRUCT(name) \
RZ_API RzLibStruct rizin_plugin = { \
.type = RZ_LIB_TYPE_ARCH, \
.data = &rz_arch_plugin_##name, \
.version = RZ_VERSION \
}
#else
#define ARCH_PLUGIN_LIB_STRUCT(name)
#endif
#define RZ_ARCH_WITH_PARSE_PLUGIN_DEFINE_DEPRECATED(name) \
DEPRECATED_OLD_ARCH_PLUGIN(name); \
ARCH_PLUGIN_LIB_STRUCT(name)
#define RZ_ARCH_PLUGIN_DEFINE_DEPRECATED(name) \
DEPRECATED_OLD_ARCH_NO_PARSE_PLUGIN(name); \
ARCH_PLUGIN_LIB_STRUCT(name)
#define RZ_ARCH_ASM_ONLY_PLUGIN_DEFINE_DEPRECATED(name) \
DEPRECATED_OLD_ARCH_ASM_ONLY_PLUGIN(name); \
ARCH_PLUGIN_LIB_STRUCT(name)
#endif /* DEPRECATED_ARCH_HELPER_H */