Revert previous break changes that return UC_ERR_ARG for non-existing registers

But print a warning instead
This commit is contained in:
mio
2024-10-02 15:49:26 +08:00
parent a637368122
commit 9f935f505e
11 changed files with 35 additions and 2 deletions

View File

@@ -266,6 +266,7 @@ uc_err reg_read(void *_env, int mode, unsigned int regid, void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}
@@ -399,6 +400,7 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}

View File

@@ -10,6 +10,8 @@
#include "uc_priv.h"
#include "unicorn_common.h"
#include "unicorn.h"
#include "stdio.h"
#include "inttypes.h"
ARMCPU *cpu_arm_init(struct uc_struct *uc);
@@ -353,6 +355,7 @@ uc_err reg_read(void *_env, int mode, unsigned int regid, void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}
@@ -553,6 +556,7 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}

View File

@@ -1074,6 +1074,7 @@ uc_err reg_read(void *_env, int mode, unsigned int regid, void *value,
#endif
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}
@@ -1983,6 +1984,7 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value,
#endif
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}

View File

@@ -77,6 +77,7 @@ uc_err reg_read(void *_env, int mode, unsigned int regid, void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}
@@ -109,6 +110,7 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}

View File

@@ -100,6 +100,7 @@ uc_err reg_read(void *_env, int mode, unsigned int regid, void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}
@@ -149,6 +150,7 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}

View File

@@ -204,6 +204,7 @@ uc_err reg_read(void *_env, int mode, unsigned int regid, void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}
@@ -265,6 +266,7 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}

View File

@@ -126,6 +126,7 @@ uc_err reg_read(void *_env, int mode, unsigned int regid, void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}
@@ -176,6 +177,7 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}

View File

@@ -80,7 +80,7 @@ uc_err reg_read(void *_env, int mode, unsigned int regid, void *value,
break;
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}
@@ -113,6 +113,7 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value,
break;
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}

View File

@@ -91,6 +91,7 @@ uc_err reg_read(void *_env, int mode, unsigned int regid, void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}
@@ -126,6 +127,7 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}

View File

@@ -138,6 +138,7 @@ uc_err reg_read(void *_env, int mode, unsigned int regid, void *value,
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}
@@ -240,7 +241,8 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value,
break;
}
}
CHECK_RET_DEPRECATE(ret, regid);
return ret;
}

View File

@@ -154,4 +154,16 @@ static inline void uc_common_init(struct uc_struct* uc)
ret = UC_ERR_OK; \
} while(0)
#define CHECK_RET_DEPRECATE(ret, regid) do { \
if (ret == UC_ERR_ARG && !getenv("UC_IGNORE_REG_BREAK")) { \
fprintf(stderr, \
"WARNING: Your register accessing on id %"PRIu32" is deprecated" \
" and will get UC_ERR_ARG in the future release (2.2.0) because" \
" the accessing is either no-op or not defined." \
" Set UC_IGNORE_REG_BREAK=1 to ignore this warning.\n", \
regid); \
ret = UC_ERR_OK; \
} \
} while (0)
#endif