int sym_callchain_add(sym_t *sym, uint64_t *ips, int ips_num, sym_chainlist_t *list) { sym_callchain_t *chain; if ((chain = chain_find(list, ips, ips_num)) != NULL) { chain->naccess++; return (0); } if ((chain = chain_alloc(sym, ips, ips_num)) == NULL) { return (-1); } chainlist_attach_tail(list, chain); return (0); }
static void chain_set(void) { char *name = setting("chain"); const struct chain_info *new_chain = chain_find(name); if (!new_chain) { fprintf(stderr, "chain-set: unknown chain '%s'\n", name); exit(1); } bu256_t new_genesis; if (!hex_bu256(&new_genesis, new_chain->genesis_hash)) { fprintf(stderr, "chain-set: invalid genesis hash %s\n", new_chain->genesis_hash); exit(1); } chain = new_chain; bu256_copy(&chain_genesis, &new_genesis); }