/* * pocli_pmemobj_first -- pmemobj_first() command */ static enum pocli_ret pocli_pmemobj_first(struct pocli_ctx *ctx, struct pocli_args *args) { if (args->argc != 1) return POCLI_ERR_ARGS; PMEMoid oidp = pmemobj_first(ctx->pop); if (OID_IS_NULL(oidp)) return pocli_err(ctx, POCLI_ERR_ARGS, "pmemobj_first() failed\n"); pocli_printf(ctx, "%s: off = 0x%llx uuid = 0x%llx\n", args->argv[0], oidp.off, oidp.pool_uuid_lo); return POCLI_RET_OK; }
/* * pmemobj_vg_boot -- (internal) notify Valgrind about pool objects */ static void pmemobj_vg_boot(struct pmemobjpool *pop) { if (!On_valgrind) return; LOG(4, "pop %p", pop); PMEMoid oid; int rs = pmemobj_root_size(pop); if (rs) { oid = pmemobj_root(pop, rs); pmemobj_vg_register_object(pop, oid, 1); } for (int i = 0; i < PMEMOBJ_NUM_OID_TYPES; ++i) { for (oid = pmemobj_first(pop, i); !OID_IS_NULL(oid); oid = pmemobj_next(oid)) pmemobj_vg_register_object(pop, oid, 0); } if (getenv("PMEMOBJ_VG_CHECK_UNDEF")) pmemobj_vg_check_no_undef(pop); }