• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/dtrace-118.1/libdtrace/

Lines Matching defs:dhp

627 dt_idhash_populate(dt_idhash_t *dhp)
629 const dt_ident_t *idp = dhp->dh_tmpl;
631 dhp->dh_tmpl = NULL; /* clear dh_tmpl first to avoid recursion */
632 dt_dprintf("populating %s idhash from %p\n", dhp->dh_name, (void *)idp);
635 if (dt_idhash_insert(dhp, idp->di_name,
647 dt_idhash_t *dhp;
655 if ((dhp = malloc(size)) == NULL)
658 bzero(dhp, size);
659 dhp->dh_name = name;
660 dhp->dh_tmpl = tmpl;
661 dhp->dh_nextid = min;
662 dhp->dh_minid = min;
663 dhp->dh_maxid = max;
664 dhp->dh_hashsz = _dtrace_strbuckets;
666 return (dhp);
679 dt_idhash_destroy(dt_idhash_t *dhp)
684 for (i = 0; i < dhp->dh_hashsz; i++) {
685 for (idp = dhp->dh_hash[i]; idp != NULL; idp = next) {
691 for (i = 0; i < dhp->dh_hashsz; i++) {
692 for (idp = dhp->dh_hash[i]; idp != NULL; idp = next) {
699 free(dhp);
703 dt_idhash_update(dt_idhash_t *dhp)
705 uint_t nextid = dhp->dh_minid;
709 for (i = 0; i < dhp->dh_hashsz; i++) {
710 for (idp = dhp->dh_hash[i]; idp != NULL; idp = idp->di_next) {
722 dhp->dh_nextid = nextid;
726 dt_idhash_lookup(dt_idhash_t *dhp, const char *name)
729 ulong_t h = dt_strtab_hash(name, &len) % dhp->dh_hashsz;
732 if (dhp->dh_tmpl != NULL)
733 dt_idhash_populate(dhp); /* fill hash w/ initial population */
735 for (idp = dhp->dh_hash[h]; idp != NULL; idp = idp->di_next) {
744 dt_idhash_nextid(dt_idhash_t *dhp, uint_t *p)
746 if (dhp->dh_nextid >= dhp->dh_maxid)
749 *p = dhp->dh_nextid++;
754 dt_idhash_size(const dt_idhash_t *dhp)
756 return (dhp->dh_nelems);
760 dt_idhash_name(const dt_idhash_t *dhp)
762 return (dhp->dh_name);
766 dt_idhash_insert(dt_idhash_t *dhp, const char *name, ushort_t kind,
773 if (dhp->dh_tmpl != NULL)
774 dt_idhash_populate(dhp); /* fill hash w/ initial population */
782 h = dt_strtab_hash(name, NULL) % dhp->dh_hashsz;
783 idp->di_next = dhp->dh_hash[h];
785 dhp->dh_hash[h] = idp;
786 dhp->dh_nelems++;
788 if (dhp->dh_defer != NULL)
789 dhp->dh_defer(dhp, idp);
795 dt_idhash_xinsert(dt_idhash_t *dhp, dt_ident_t *idp)
799 if (dhp->dh_tmpl != NULL)
800 dt_idhash_populate(dhp); /* fill hash w/ initial population */
802 h = dt_strtab_hash(idp->di_name, NULL) % dhp->dh_hashsz;
803 idp->di_next = dhp->dh_hash[h];
806 dhp->dh_hash[h] = idp;
807 dhp->dh_nelems++;
809 if (dhp->dh_defer != NULL)
810 dhp->dh_defer(dhp, idp);
814 dt_idhash_delete(dt_idhash_t *dhp, dt_ident_t *key)
817 ulong_t h = dt_strtab_hash(key->di_name, &len) % dhp->dh_hashsz;
818 dt_ident_t **pp = &dhp->dh_hash[h];
821 for (idp = dhp->dh_hash[h]; idp != NULL; idp = idp->di_next) {
831 assert(dhp->dh_nelems != 0);
832 dhp->dh_nelems--;
851 dt_idhash_iter(dt_idhash_t *dhp, dt_idhash_f *func, void *data)
858 if (dhp->dh_tmpl != NULL)
859 dt_idhash_populate(dhp); /* fill hash w/ initial population */
861 n = dhp->dh_nelems;
864 for (i = 0, j = 0; i < dhp->dh_hashsz; i++) {
865 for (idp = dhp->dh_hash[i]; idp != NULL; idp = idp->di_next)
869 qsort(ids, dhp->dh_nelems, sizeof (dt_ident_t *), dt_idhash_comp);
872 if ((rv = func(dhp, ids[i], data)) != 0)
882 dt_idhash_t *dhp;
885 for (dhp = dt_list_prev(&sp->dids_list);
886 dhp != NULL; dhp = dt_list_prev(dhp)) {
887 if ((idp = dt_idhash_lookup(dhp, name)) != NULL)
895 dt_idstack_push(dt_idstack_t *sp, dt_idhash_t *dhp)
897 dt_list_append(&sp->dids_list, dhp);
901 dt_idstack_pop(dt_idstack_t *sp, dt_idhash_t *dhp)
903 assert(dt_list_prev(&sp->dids_list) == dhp);
904 dt_list_delete(&sp->dids_list, dhp);