62 .noreturn_db =
sdb_ns(analysis_db,
"noreturn",
true)
64 if (!
ctx.moved_keys || !
ctx.noreturn_db) {
70 rz_list_foreach (
ctx.moved_keys, it,
s) {
102 char *tl_key =
rz_str_newf(
"0x%s",
k + strlen(
"link."));
119 .callables_db =
sdb_ns(analysis_db,
"callables",
true),
120 .typelinks_db =
sdb_ns(analysis_db,
"typelinks",
true)
122 if (!
ctx.moved_keys || !
ctx.callables_db || !
ctx.typelinks_db) {
128 rz_list_foreach (
ctx.moved_keys, it,
s) {
147 bool v3_v4_types_foreach_cb(
void *user,
const char *
k,
const char *
v) {
148 V3V4TypesCtx *
ctx = user;
172 sdb_ns(analysis_db,
"vars",
true);
176 .global_vars_db =
sdb_ns(analysis_db,
"vars",
true)
179 if (!
ctx.moved_keys || !
ctx.global_vars_db) {
182 Sdb *typelinks_db =
sdb_ns(analysis_db,
"typelinks",
true);
186 rz_list_foreach (
ctx.moved_keys, it,
s) {
213 sdb_set(types_db,
"unknown_t",
"type", 0);
214 sdb_set(types_db,
"type.unknown_t.typeclass",
"Integral", 0);
221 sdb_set(types_db,
"type.unknown_t",
"w", 0);
222 sdb_set(types_db,
"type.unknown_t.size",
"16", 0);
227 sdb_set(types_db,
"type.unknown_t",
"q", 0);
228 sdb_set(types_db,
"type.unknown_t.size",
"64", 0);
234 sdb_set(types_db,
"type.unknown_t",
"d", 0);
235 sdb_set(types_db,
"type.unknown_t.size",
"32", 0);
252 Sdb *debug_db =
sdb_ns(core_db,
"debug",
true);
253 sdb_ns(debug_db,
"breakpoints",
true);
288 sdb_unset(config_db,
"zign.autoload", 0);
289 sdb_unset(config_db,
"zign.diff.bthresh", 0);
290 sdb_unset(config_db,
"zign.diff.gthresh", 0);
291 sdb_unset(config_db,
"zign.match.bytes", 0);
292 sdb_unset(config_db,
"zign.match.graph", 0);
293 sdb_unset(config_db,
"zign.match.hash", 0);
294 sdb_unset(config_db,
"zign.match.offset", 0);
295 sdb_unset(config_db,
"zign.match.refs", 0);
296 sdb_unset(config_db,
"zign.match.types", 0);
301 sdb_unset(config_db,
"zign.threshold", 0);
int bits(struct state *s, int need)
RZ_API void Ht_() free(HtName_(Ht) *ht)
RZ_API RZ_OWN RzList * rz_list_newf(RzListFree f)
Returns a new initialized RzList pointer and sets the free method.
RZ_API RZ_BORROW RzListIter * rz_list_push(RZ_NONNULL RzList *list, void *item)
Alias for rz_list_append.
RZ_API void rz_list_free(RZ_NONNULL RzList *list)
Empties the list and frees the list pointer.
return strdup("=SP r13\n" "=LR r14\n" "=PC r15\n" "=A0 r0\n" "=A1 r1\n" "=A2 r2\n" "=A3 r3\n" "=ZF zf\n" "=SF nf\n" "=OF vf\n" "=CF cf\n" "=SN or0\n" "gpr lr .32 56 0\n" "gpr pc .32 60 0\n" "gpr cpsr .32 64 0 ____tfiae_________________qvczn\n" "gpr or0 .32 68 0\n" "gpr tf .1 64.5 0 thumb\n" "gpr ef .1 64.9 0 endian\n" "gpr jf .1 64.24 0 java\n" "gpr qf .1 64.27 0 sticky_overflow\n" "gpr vf .1 64.28 0 overflow\n" "gpr cf .1 64.29 0 carry\n" "gpr zf .1 64.30 0 zero\n" "gpr nf .1 64.31 0 negative\n" "gpr itc .4 64.10 0 if_then_count\n" "gpr gef .4 64.16 0 great_or_equal\n" "gpr r0 .32 0 0\n" "gpr r1 .32 4 0\n" "gpr r2 .32 8 0\n" "gpr r3 .32 12 0\n" "gpr r4 .32 16 0\n" "gpr r5 .32 20 0\n" "gpr r6 .32 24 0\n" "gpr r7 .32 28 0\n" "gpr r8 .32 32 0\n" "gpr r9 .32 36 0\n" "gpr r10 .32 40 0\n" "gpr r11 .32 44 0\n" "gpr r12 .32 48 0\n" "gpr r13 .32 52 0\n" "gpr r14 .32 56 0\n" "gpr r15 .32 60 0\n" "gpr r16 .32 64 0\n" "gpr r17 .32 68 0\n")
RZ_API Sdb * sdb_ns(Sdb *s, const char *name, int create)
RZ_API bool sdb_ns_unset(Sdb *s, const char *name, Sdb *r)
RZ_API ut64 sdb_num_get(Sdb *s, const char *key, ut32 *cas)
bool v1_v2_types_foreach_cb(void *user, const char *k, const char *v)
RZ_API bool rz_project_migrate_v2_v3(RzProject *prj, RzSerializeResultInfo *res)
RZ_API bool rz_project_migrate_v1_v2(RzProject *prj, RzSerializeResultInfo *res)
bool v2_v3_types_foreach_cb(void *user, const char *k, const char *v)
RZ_API bool rz_project_migrate_v3_v4(RzProject *prj, RzSerializeResultInfo *res)
RZ_API bool rz_project_migrate_v6_v7(RzProject *prj, RzSerializeResultInfo *res)
RZ_API bool rz_project_migrate_v4_v5(RzProject *prj, RzSerializeResultInfo *res)
RZ_API bool rz_project_migrate_v5_v6(RzProject *prj, RzSerializeResultInfo *res)
RZ_API bool rz_project_migrate_v7_v8(RzProject *prj, RzSerializeResultInfo *res)
RZ_API bool rz_project_migrate(RzProject *prj, unsigned long version, RzSerializeResultInfo *res)
Migrate the given project to the current version in-place.
static bool(*const migrations[])(RzProject *prj, RzSerializeResultInfo *res)
#define RZ_STATIC_ASSERT(x)
RZ_API PJ * pj_end(PJ *j)
RZ_API const char * pj_string(PJ *pj)
RZ_API void pj_free(PJ *j)
RZ_API PJ * pj_ks(PJ *j, const char *k, const char *v)
#define RZ_PROJECT_VERSION
#define RZ_SERIALIZE_SUB(db, subdb, res, ns, rip)
Get an sdb sub-namespace or fail.
RZ_API char * rz_str_newf(const char *fmt,...) RZ_PRINTF_CHECK(1
RZ_API bool rz_str_startswith(RZ_NONNULL const char *str, RZ_NONNULL const char *needle)
Checks if a string starts with a specifc sequence of characters (case sensitive)
RZ_API bool rz_str_endswith(RZ_NONNULL const char *str, RZ_NONNULL const char *needle)
Checks if a string ends with a specifc sequence of characters (case sensitive)
#define rz_strf(buf,...)
Convenience macro for local temporary strings.
RZ_API int sdb_set(Sdb *s, const char *key, const char *val, ut32 cas)
RZ_API bool sdb_foreach(Sdb *s, SdbForeachCallback cb, void *user)
RZ_API int sdb_unset(Sdb *s, const char *key, ut32 cas)
RzList * moved_keys
deferred for deletion from the old sdb
RzList * moved_keys
deferred for deletion from the old sdb