Lines Matching refs:clp

637 	cache_link_t *clp;  in read_links()  local
663 clp = link_insert(hdp, pcmp, path, content, dlp->attr); in read_links()
664 if (clp == NULL) { in read_links()
670 nidx, clp->path, pcmp == NULL ? "(DANGLING)" : ""); in read_links()
931 cache_link_t *clp, in write_links() argument
941 if (clp != NULL && ((pdmp == NULL) ^ (clp == CACHE(hdp)->dngl))) { in write_links()
948 for (; clp != NULL; clp = clp->sib) { in write_links()
950 assert(clp->path != NULL); in write_links()
952 if ((pdmp == NULL) ^ (clp->minor == NULL)) { in write_links()
954 "%s: invalid minor for link(%s)\n", fcn, clp->path); in write_links()
965 dlp->path = write_string(hdp, clp->path, next); in write_links()
966 dlp->content = write_string(hdp, clp->content, next); in write_links()
973 dlp->attr = clp->attr; in write_links()
987 fcn, idx, clp->path, pdmp == NULL ? "(DANGLING)" : ""); in write_links()
990 return (clp ? -1 : 0); in write_links()
1072 cache_link_t *clp; in cache_free() local
1082 clp = CACHE(hdp)->dngl; in cache_free()
1083 CACHE(hdp)->dngl = clp->sib; in cache_free()
1084 assert(clp->minor == NULL); in cache_free()
1085 link_free(&clp); in cache_free()
1125 cache_link_t *clp; in subtree_free() local
1142 clp = cmnp->link; in subtree_free()
1143 cmnp->link = clp->sib; in subtree_free()
1144 rm_link_from_hash(hdp, clp); in subtree_free()
1145 link_free(&clp); in subtree_free()
1154 rm_link_from_hash(struct di_devlink_handle *hdp, cache_link_t *clp) in rm_link_from_hash() argument
1159 if (clp == NULL) in rm_link_from_hash()
1162 if (clp->path == NULL) in rm_link_from_hash()
1165 hval = hashfn(hdp, clp->path); in rm_link_from_hash()
1168 if (*pp == clp) { in rm_link_from_hash()
1169 *pp = clp->hash; in rm_link_from_hash()
1170 clp->hash = NULL; in rm_link_from_hash()
1176 clp->path); in rm_link_from_hash()
1183 cache_link_t **pp, *clp; in link_hash() local
1190 for (; (clp = *pp) != NULL; pp = &clp->hash) { in link_hash()
1191 if (strcmp(clp->path, link) == 0) { in link_hash()
1196 if (clp == NULL) in link_hash()
1200 *pp = clp->hash; in link_hash()
1201 clp->hash = NULL; in link_hash()
1204 return (clp); in link_hash()
1208 link2minor(struct di_devlink_handle *hdp, cache_link_t *clp) in link2minor() argument
1216 if (TYPE_PRI(attr2type(clp->attr))) { in link2minor()
1220 if (!is_minor_node(clp->content, &minor_path)) { in link2minor()
1237 if (strncmp(clp->content, DEV"/", strlen(DEV"/")) == 0) { in link2minor()
1238 cp = &clp->content[strlen(DEV"/")]; in link2minor()
1239 } else if (clp->content[0] != '/') { in link2minor()
1240 if ((cp = strrchr(clp->path, '/')) != NULL) { in link2minor()
1243 (void) snprintf(buf, sizeof (buf), "%s", clp->path); in link2minor()
1246 (void) strlcat(buf, clp->content, sizeof (buf)); in link2minor()
1261 (void) snprintf(link, sizeof (link), "%s/%s", hdp->dev_dir, clp->path); in link2minor()
1307 cache_link_t *clp, **pp; in resolve_dangling_links() local
1310 clp = *pp; in resolve_dangling_links()
1311 if ((cmnp = link2minor(hdp, clp)) != NULL) { in resolve_dangling_links()
1312 *pp = clp->sib; in resolve_dangling_links()
1313 clp->sib = cmnp->link; in resolve_dangling_links()
1314 cmnp->link = clp; in resolve_dangling_links()
1315 assert(clp->minor == NULL); in resolve_dangling_links()
1316 clp->minor = cmnp; in resolve_dangling_links()
1320 clp->path); in resolve_dangling_links()
1321 pp = &clp->sib; in resolve_dangling_links()
1368 cache_link_t *clp = *pp; in link_free() local
1372 if (clp == NULL) in link_free()
1375 free(clp->path); in link_free()
1376 free(clp->content); in link_free()
1377 free(clp); in link_free()
1754 cache_link_t *clp; in rm_link() local
1767 if ((clp = link_hash(hdp, link, UNLINK_FROM_HASH)) == NULL) { in rm_link()
1771 link_delete(hdp, clp); in rm_link()
1788 link_delete(di_devlink_handle_t hdp, cache_link_t *clp) in link_delete() argument
1794 fcn, clp->path); in link_delete()
1796 if (clp->minor == NULL) in link_delete()
1799 pp = &clp->minor->link; in link_delete()
1802 if (*pp == clp) in link_delete()
1808 fcn, clp->path); in link_delete()
1810 *pp = clp->sib; in link_delete()
1813 delete_unused_minor(hdp, clp->minor); in link_delete()
1815 clp->minor = NULL; in link_delete()
1817 link_free(&clp); in link_delete()
1853 cache_link_t *clp; in add_link() local
1866 if ((clp = link_hash(hdp, link, 0)) != NULL) { in add_link()
1867 if (link_cmp(clp, content, LINK_TYPE(flags)) != 0) { in add_link()
1870 return (clp); in add_link()
1906 link_cmp(cache_link_t *clp, const char *content, int type) in link_cmp() argument
1908 if (strcmp(clp->content, content) != 0) in link_cmp()
1911 if (attr2type(clp->attr) != type) in link_cmp()
1938 cache_link_t *clp; in synchronize_db() local
1956 for (clp = CACHE_HASH(hdp, hval); clp != NULL; ) { in synchronize_db()
1957 if (GET_VALID_ATTR(clp->attr)) { in synchronize_db()
1958 CLR_VALID_ATTR(clp->attr); in synchronize_db()
1959 clp = clp->hash; in synchronize_db()
1968 (void) snprintf(pdup, sizeof (pdup), "%s", clp->path); in synchronize_db()
1969 clp = clp->hash; in synchronize_db()
2227 cache_link_t *clp; in cache_dev_link() local
2249 if ((clp = add_link(hdp, link, content, flags)) != NULL) { in cache_dev_link()
2250 SET_VALID_ATTR(clp->attr); in cache_dev_link()
2785 cache_link_t *clp; in link_insert() local
2793 if ((clp = calloc(1, sizeof (cache_link_t))) == NULL) { in link_insert()
2798 clp->path = strdup(path); in link_insert()
2799 clp->content = strdup(content); in link_insert()
2800 if (clp->path == NULL || clp->content == NULL) { in link_insert()
2802 link_free(&clp); in link_insert()
2806 clp->attr = attr; in link_insert()
2807 hash_insert(hdp, clp); in link_insert()
2808 clp->minor = cmnp; in link_insert()
2812 clp->sib = cmnp->link; in link_insert()
2813 cmnp->link = clp; in link_insert()
2815 clp->sib = CACHE(hdp)->dngl; in link_insert()
2816 CACHE(hdp)->dngl = clp; in link_insert()
2819 return (clp); in link_insert()
2823 hash_insert(struct di_devlink_handle *hdp, cache_link_t *clp) in hash_insert() argument
2827 hval = hashfn(hdp, clp->path); in hash_insert()
2828 clp->hash = CACHE_HASH(hdp, hval); in hash_insert()
2829 CACHE_HASH(hdp, hval) = clp; in hash_insert()
2982 cache_link_t *clp; in size_db() local
2993 for (clp = CACHE(hdp)->dngl; clp != NULL; clp = clp->sib) { in size_db()
2994 count_link(clp, count); in size_db()
3033 cache_link_t *clp; in count_minor() local
3042 for (clp = cmnp->link; clp != NULL; clp = clp->sib) { in count_minor()
3043 count_link(clp, count); in count_minor()
3048 count_link(cache_link_t *clp, uint32_t *count) in count_link() argument
3050 if (clp == NULL) in count_link()
3054 count_string(clp->path, count); in count_link()
3055 count_string(clp->content, count); in count_link()
3650 walk_cache_links(di_devlink_handle_t hdp, cache_link_t *clp, link_desc_t *linkp) in walk_cache_links() argument
3657 clp ? clp->path : "<NULL>"); in walk_cache_links()
3666 for (; clp != NULL; clp = clp->sib) { in walk_cache_links()
3669 assert(clp->path[0] != '/'); in walk_cache_links()
3671 vlink.rel_path = clp->path; in walk_cache_links()
3672 vlink.content = clp->content; in walk_cache_links()
3673 vlink.type = attr2type(clp->attr); in walk_cache_links()
3678 "terminating at link: %s\n", clp->path); in walk_cache_links()
3683 clp = CACHE(hdp)->dngl; in walk_cache_links()
3696 cache_link_t *clp; in walk_all_cache() local
3701 clp = CACHE_HASH(hdp, i); in walk_all_cache()
3702 for (; clp; clp = clp->hash) { in walk_all_cache()
3705 assert(clp->path[0] != '/'); in walk_all_cache()
3707 vlink.rel_path = clp->path; in walk_all_cache()
3708 vlink.content = clp->content; in walk_all_cache()
3709 vlink.type = attr2type(clp->attr); in walk_all_cache()
3714 clp->path); in walk_all_cache()