Lines Matching defs:wrapper

346 /* Make a new struct ctf_archive_internal wrapper for a ctf_archive or a
434 record this fact in the archive-wrapper header. (We cannot record it
697 ctf_arc_flush_caches (ctf_archive_t *wrapper)
699 free (wrapper->ctfi_symdicts);
700 free (wrapper->ctfi_symnamedicts);
701 ctf_dynhash_destroy (wrapper->ctfi_dicts);
702 wrapper->ctfi_symdicts = NULL;
703 wrapper->ctfi_symnamedicts = NULL;
704 wrapper->ctfi_dicts = NULL;
705 wrapper->ctfi_crossdict_cache = NULL;
778 ctf_archive_count (const ctf_archive_t *wrapper)
780 if (!wrapper->ctfi_is_archive)
783 return wrapper->ctfi_archive->ctfa_ndicts;
798 ctf_arc_lookup_sym_or_name (ctf_archive_t *wrapper, unsigned long symidx,
805 /* The usual non-archive-transparent-wrapper special case. */
806 if (!wrapper->ctfi_is_archive)
810 if ((type = ctf_lookup_by_symbol (wrapper->ctfi_dict, symidx)) == CTF_ERR)
813 *errp = ctf_errno (wrapper->ctfi_dict);
819 if ((type = ctf_lookup_by_symbol_name (wrapper->ctfi_dict,
823 *errp = ctf_errno (wrapper->ctfi_dict);
829 wrapper->ctfi_dict->ctf_refcnt++;
830 return wrapper->ctfi_dict;
833 if (wrapper->ctfi_symsect.cts_name == NULL
834 || wrapper->ctfi_symsect.cts_data == NULL
835 || wrapper->ctfi_symsect.cts_size == 0
836 || wrapper->ctfi_symsect.cts_entsize == 0)
849 if (!wrapper->ctfi_symdicts)
851 if ((wrapper->ctfi_symdicts = calloc (wrapper->ctfi_symsect.cts_size
852 / wrapper->ctfi_symsect.cts_entsize,
860 if (!wrapper->ctfi_symnamedicts)
862 if ((wrapper->ctfi_symnamedicts = ctf_dynhash_create (ctf_hash_string,
877 if ((symname && ctf_dynhash_lookup_kv (wrapper->ctfi_symnamedicts,
879 || (!symname && wrapper->ctfi_symdicts[symidx] != NULL))
884 fp = wrapper->ctfi_symdicts[symidx];
920 while ((fp = ctf_archive_next (wrapper, &i, &name, 0, local_errp)) != NULL)
925 wrapper->ctfi_symdicts[symidx] = fp;
934 ctf_dynhash_insert (wrapper->ctfi_symnamedicts, tmp, fp);
965 wrapper->ctfi_symdicts[symidx] = &enosym;
973 if (ctf_dynhash_insert (wrapper->ctfi_symnamedicts, tmp, &enosym) < 0)
987 ctf_arc_lookup_symbol (ctf_archive_t *wrapper, unsigned long symidx,
990 return ctf_arc_lookup_sym_or_name (wrapper, symidx, NULL, typep, errp);
996 ctf_arc_lookup_symbol_name (ctf_archive_t *wrapper, const char *symname,
999 return ctf_arc_lookup_sym_or_name (wrapper, 0, symname, typep, errp);
1082 ctf_archive_next (const ctf_archive_t *wrapper, ctf_next_t **it, const char **name,
1100 i->cu.ctn_arc = wrapper;
1112 if (wrapper != i->cu.ctn_arc)
1124 if (!wrapper->ctfi_is_archive && i->ctn_n == 0)
1129 wrapper->ctfi_dict->ctf_refcnt++;
1132 return wrapper->ctfi_dict;
1136 arc = wrapper->ctfi_archive;
1144 if ((!wrapper->ctfi_is_archive) || (i->ctn_n >= le64toh (arc->ctfa_ndicts)))
1165 f = ctf_dict_open_cached ((ctf_archive_t *) wrapper, name_, errp);