prefix cs_ to global variables to avoid link problems (#1102)
This commit is contained in:
parent
a1659e996c
commit
5f173b0562
|
@ -43,10 +43,10 @@ static void destroy(cs_struct *handle)
|
|||
|
||||
void AArch64_enable(void)
|
||||
{
|
||||
arch_init[CS_ARCH_ARM64] = init;
|
||||
arch_option[CS_ARCH_ARM64] = option;
|
||||
arch_destroy[CS_ARCH_ARM64] = destroy;
|
||||
arch_disallowed_mode_mask[CS_ARCH_ARM64] = ~(CS_MODE_LITTLE_ENDIAN | CS_MODE_ARM | CS_MODE_BIG_ENDIAN);
|
||||
cs_arch_init[CS_ARCH_ARM64] = init;
|
||||
cs_arch_option[CS_ARCH_ARM64] = option;
|
||||
cs_arch_destroy[CS_ARCH_ARM64] = destroy;
|
||||
cs_arch_disallowed_mode_mask[CS_ARCH_ARM64] = ~(CS_MODE_LITTLE_ENDIAN | CS_MODE_ARM | CS_MODE_BIG_ENDIAN);
|
||||
|
||||
// support this arch
|
||||
all_arch |= (1 << CS_ARCH_ARM64);
|
||||
|
|
|
@ -62,10 +62,10 @@ static void destroy(cs_struct *handle)
|
|||
|
||||
void ARM_enable(void)
|
||||
{
|
||||
arch_init[CS_ARCH_ARM] = init;
|
||||
arch_option[CS_ARCH_ARM] = option;
|
||||
arch_destroy[CS_ARCH_ARM] = destroy;
|
||||
arch_disallowed_mode_mask[CS_ARCH_ARM] = ~(CS_MODE_LITTLE_ENDIAN |
|
||||
cs_arch_init[CS_ARCH_ARM] = init;
|
||||
cs_arch_option[CS_ARCH_ARM] = option;
|
||||
cs_arch_destroy[CS_ARCH_ARM] = destroy;
|
||||
cs_arch_disallowed_mode_mask[CS_ARCH_ARM] = ~(CS_MODE_LITTLE_ENDIAN |
|
||||
CS_MODE_ARM | CS_MODE_V8 | CS_MODE_MCLASS | CS_MODE_THUMB |
|
||||
CS_MODE_BIG_ENDIAN);
|
||||
|
||||
|
|
|
@ -62,10 +62,10 @@ static void destroy(cs_struct *handle)
|
|||
|
||||
void Mips_enable(void)
|
||||
{
|
||||
arch_init[CS_ARCH_MIPS] = init;
|
||||
arch_option[CS_ARCH_MIPS] = option;
|
||||
arch_destroy[CS_ARCH_MIPS] = destroy;
|
||||
arch_disallowed_mode_mask[CS_ARCH_MIPS] = ~(CS_MODE_LITTLE_ENDIAN |
|
||||
cs_arch_init[CS_ARCH_MIPS] = init;
|
||||
cs_arch_option[CS_ARCH_MIPS] = option;
|
||||
cs_arch_destroy[CS_ARCH_MIPS] = destroy;
|
||||
cs_arch_disallowed_mode_mask[CS_ARCH_MIPS] = ~(CS_MODE_LITTLE_ENDIAN |
|
||||
CS_MODE_32 | CS_MODE_64 | CS_MODE_MICRO | CS_MODE_MIPS32R6 |
|
||||
CS_MODE_MIPSGP64 | CS_MODE_BIG_ENDIAN);
|
||||
|
||||
|
|
|
@ -47,10 +47,10 @@ static void destroy(cs_struct *handle)
|
|||
|
||||
void PPC_enable(void)
|
||||
{
|
||||
arch_init[CS_ARCH_PPC] = init;
|
||||
arch_option[CS_ARCH_PPC] = option;
|
||||
arch_destroy[CS_ARCH_PPC] = destroy;
|
||||
arch_disallowed_mode_mask[CS_ARCH_PPC] = ~(CS_MODE_LITTLE_ENDIAN |
|
||||
cs_arch_init[CS_ARCH_PPC] = init;
|
||||
cs_arch_option[CS_ARCH_PPC] = option;
|
||||
cs_arch_destroy[CS_ARCH_PPC] = destroy;
|
||||
cs_arch_disallowed_mode_mask[CS_ARCH_PPC] = ~(CS_MODE_LITTLE_ENDIAN |
|
||||
CS_MODE_32 | CS_MODE_64 | CS_MODE_BIG_ENDIAN);
|
||||
|
||||
// support this arch
|
||||
|
|
|
@ -47,10 +47,10 @@ static void destroy(cs_struct *handle)
|
|||
|
||||
void Sparc_enable(void)
|
||||
{
|
||||
arch_init[CS_ARCH_SPARC] = init;
|
||||
arch_option[CS_ARCH_SPARC] = option;
|
||||
arch_destroy[CS_ARCH_SPARC] = destroy;
|
||||
arch_disallowed_mode_mask[CS_ARCH_SPARC] =
|
||||
cs_arch_init[CS_ARCH_SPARC] = init;
|
||||
cs_arch_option[CS_ARCH_SPARC] = option;
|
||||
cs_arch_destroy[CS_ARCH_SPARC] = destroy;
|
||||
cs_arch_disallowed_mode_mask[CS_ARCH_SPARC] =
|
||||
~(CS_MODE_BIG_ENDIAN | CS_MODE_V9);
|
||||
|
||||
// support this arch
|
||||
|
|
|
@ -46,10 +46,10 @@ static void destroy(cs_struct *handle)
|
|||
|
||||
void SystemZ_enable(void)
|
||||
{
|
||||
arch_init[CS_ARCH_SYSZ] = init;
|
||||
arch_option[CS_ARCH_SYSZ] = option;
|
||||
arch_destroy[CS_ARCH_SYSZ] = destroy;
|
||||
arch_disallowed_mode_mask[CS_ARCH_SYSZ] = ~CS_MODE_BIG_ENDIAN;
|
||||
cs_arch_init[CS_ARCH_SYSZ] = init;
|
||||
cs_arch_option[CS_ARCH_SYSZ] = option;
|
||||
cs_arch_destroy[CS_ARCH_SYSZ] = destroy;
|
||||
cs_arch_disallowed_mode_mask[CS_ARCH_SYSZ] = ~CS_MODE_BIG_ENDIAN;
|
||||
|
||||
// support this arch
|
||||
all_arch |= (1 << CS_ARCH_SYSZ);
|
||||
|
|
|
@ -88,10 +88,10 @@ static void destroy(cs_struct *handle)
|
|||
|
||||
void X86_enable(void)
|
||||
{
|
||||
arch_init[CS_ARCH_X86] = init;
|
||||
arch_option[CS_ARCH_X86] = option;
|
||||
arch_destroy[CS_ARCH_X86] = destroy;
|
||||
arch_disallowed_mode_mask[CS_ARCH_X86] = ~(CS_MODE_LITTLE_ENDIAN |
|
||||
cs_arch_init[CS_ARCH_X86] = init;
|
||||
cs_arch_option[CS_ARCH_X86] = option;
|
||||
cs_arch_destroy[CS_ARCH_X86] = destroy;
|
||||
cs_arch_disallowed_mode_mask[CS_ARCH_X86] = ~(CS_MODE_LITTLE_ENDIAN |
|
||||
CS_MODE_32 | CS_MODE_64 | CS_MODE_16);
|
||||
|
||||
// support this arch
|
||||
|
|
|
@ -43,10 +43,10 @@ static void destroy(cs_struct *handle)
|
|||
|
||||
void XCore_enable(void)
|
||||
{
|
||||
arch_init[CS_ARCH_XCORE] = init;
|
||||
arch_option[CS_ARCH_XCORE] = option;
|
||||
arch_destroy[CS_ARCH_XCORE] = destroy;
|
||||
arch_disallowed_mode_mask[CS_ARCH_XCORE] = ~CS_MODE_BIG_ENDIAN;
|
||||
cs_arch_init[CS_ARCH_XCORE] = init;
|
||||
cs_arch_option[CS_ARCH_XCORE] = option;
|
||||
cs_arch_destroy[CS_ARCH_XCORE] = destroy;
|
||||
cs_arch_disallowed_mode_mask[CS_ARCH_XCORE] = ~CS_MODE_BIG_ENDIAN;
|
||||
|
||||
// support this arch
|
||||
all_arch |= (1 << CS_ARCH_XCORE);
|
||||
|
|
18
cs.c
18
cs.c
|
@ -51,10 +51,10 @@
|
|||
#define SKIPDATA_MNEM NULL
|
||||
#endif
|
||||
|
||||
cs_err (*arch_init[MAX_ARCH])(cs_struct *) = { NULL };
|
||||
cs_err (*arch_option[MAX_ARCH]) (cs_struct *, cs_opt_type, size_t value) = { NULL };
|
||||
void (*arch_destroy[MAX_ARCH]) (cs_struct *) = { NULL };
|
||||
cs_mode arch_disallowed_mode_mask[MAX_ARCH] = { 0 };
|
||||
cs_err (*cs_arch_init[MAX_ARCH])(cs_struct *) = { NULL };
|
||||
cs_err (*cs_arch_option[MAX_ARCH]) (cs_struct *, cs_opt_type, size_t value) = { NULL };
|
||||
void (*cs_arch_destroy[MAX_ARCH]) (cs_struct *) = { NULL };
|
||||
cs_mode cs_arch_disallowed_mode_mask[MAX_ARCH] = { 0 };
|
||||
|
||||
extern void ARM_enable(void);
|
||||
extern void AArch64_enable(void);
|
||||
|
@ -244,9 +244,9 @@ cs_err CAPSTONE_API cs_open(cs_arch arch, cs_mode mode, csh *handle)
|
|||
|
||||
archs_enable();
|
||||
|
||||
if (arch < CS_ARCH_MAX && arch_init[arch]) {
|
||||
if (arch < CS_ARCH_MAX && cs_arch_init[arch]) {
|
||||
// verify if requested mode is valid
|
||||
if (mode & arch_disallowed_mode_mask[arch]) {
|
||||
if (mode & cs_arch_disallowed_mode_mask[arch]) {
|
||||
*handle = 0;
|
||||
return CS_ERR_MODE;
|
||||
}
|
||||
|
@ -266,7 +266,7 @@ cs_err CAPSTONE_API cs_open(cs_arch arch, cs_mode mode, csh *handle)
|
|||
// default skipdata setup
|
||||
ud->skipdata_setup.mnemonic = SKIPDATA_MNEM;
|
||||
|
||||
err = arch_init[ud->arch](ud);
|
||||
err = cs_arch_init[ud->arch](ud);
|
||||
if (err) {
|
||||
cs_mem_free(ud);
|
||||
*handle = 0;
|
||||
|
@ -437,13 +437,13 @@ cs_err CAPSTONE_API cs_option(csh ud, cs_opt_type type, size_t value)
|
|||
return CS_ERR_OK;
|
||||
case CS_OPT_MODE:
|
||||
// verify if requested mode is valid
|
||||
if (value & arch_disallowed_mode_mask[handle->arch]) {
|
||||
if (value & cs_arch_disallowed_mode_mask[handle->arch]) {
|
||||
return CS_ERR_OPTION;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return arch_option[handle->arch](handle, type, value);
|
||||
return cs_arch_option[handle->arch](handle, type, value);
|
||||
}
|
||||
|
||||
// generate @op_str for data instruction of SKIPDATA
|
||||
|
|
|
@ -61,17 +61,17 @@ struct cs_struct {
|
|||
#define MODE_IS_BIG_ENDIAN(mode) (((mode) & CS_MODE_BIG_ENDIAN) != 0)
|
||||
|
||||
// constructor initialization for all archs
|
||||
extern cs_err (*arch_init[MAX_ARCH]) (cs_struct *);
|
||||
extern cs_err (*cs_arch_init[MAX_ARCH]) (cs_struct *);
|
||||
|
||||
// support cs_option() for all archs
|
||||
extern cs_err (*arch_option[MAX_ARCH]) (cs_struct*, cs_opt_type, size_t value);
|
||||
extern cs_err (*cs_arch_option[MAX_ARCH]) (cs_struct*, cs_opt_type, size_t value);
|
||||
|
||||
// deinitialized functions: to be called when cs_close() is called
|
||||
extern void (*arch_destroy[MAX_ARCH]) (cs_struct*);
|
||||
extern void (*cs_arch_destroy[MAX_ARCH]) (cs_struct*);
|
||||
|
||||
// bitmask for finding disallowed modes for an arch:
|
||||
// to be called in cs_open()/cs_option()
|
||||
extern cs_mode arch_disallowed_mode_mask[MAX_ARCH];
|
||||
extern cs_mode cs_arch_disallowed_mode_mask[MAX_ARCH];
|
||||
|
||||
extern unsigned int all_arch;
|
||||
|
||||
|
|
Loading…
Reference in New Issue