Lines Matching refs:cp

53 	char		*cp;
56 for (cp = (char *)datap; cp != ((char *)datap + datalen); hv += *cp++)
63 Cache **cp,
74 if ((*cp = (Cache *) Malloc(sizeof (**cp))) == NULL) {
75 (void) fprintf(stderr, "Malloc(Cache **cp)");
78 (*cp)->bp = (Bucket *) Malloc(sizeof (*(*cp)->bp) * hsz);
79 if ((*cp)->bp == NULL) {
80 (void) fprintf(stderr, "Malloc(Bucket cp->bp)");
83 (*cp)->hsz = hsz;
84 (*cp)->bsz = bsz;
85 for (i = 0; i < (*cp)->hsz; i++) {
86 (*cp)->bp[i].nent = 0;
87 (*cp)->bp[i].nalloc = 0;
88 (*cp)->bp[i].itempp = NULL;
92 (*cp)->hfunc = hfunc;
94 (*cp)->hfunc = HASH;
98 (*cp)->cfunc = cfunc;
100 (*cp)->cfunc = BCMP;
104 (*cp)->kffunc = kffunc;
106 (*cp)->kffunc = Free;
110 (*cp)->dffunc = dffunc;
112 (*cp)->dffunc = Free;
118 add_cache(Cache *cp, Item *itemp)
123 if (cp == NULL) {
129 bp = &cp->bp[(*cp->hfunc)(itemp->key, itemp->keyl, cp->hsz)];
133 (Item **) Malloc(sizeof (*bp->itempp) * cp->bsz);
137 "realloc(%d) bucket=%d\n", bp->nalloc + cp->bsz,
138 (*cp->hfunc)(itemp->key, itemp->keyl, cp->hsz));
142 (bp->nalloc + cp->bsz));
162 bp->nalloc += cp->bsz;
170 lookup_cache(Cache *cp, void *datap, int datalen)
175 if (cp == NULL) {
181 bp = &cp->bp[(*cp->hfunc)(datap, datalen, cp->hsz)];
183 if (!(*cp->cfunc)((void *)bp->itempp[i]->key, datap, datalen))
189 first_item(Cache *cp, int *bidx, int *iidx)
193 if (cp == NULL) {
199 for (*bidx = 0; *bidx < cp->hsz && (cp->bp[*bidx].nalloc == 0 ||
200 cp->bp[*bidx].nent == 0); (*bidx)++)
203 if (*bidx < cp->hsz && cp->bp[*bidx].nent > 0) {
204 itemp = cp->bp[*bidx].itempp[0];
214 next_item(Cache *cp, int *bidx, int *iidx)
218 if (cp == NULL) {
224 if (*bidx < cp->hsz && *bidx >= 0) {
225 if ((*iidx + 1) < cp->bp[*bidx].nent) {
226 itemp = cp->bp[*bidx].itempp[++(*iidx)];
229 *bidx < cp->hsz && (cp->bp[*bidx].nalloc == 0 ||
230 cp->bp[*bidx].nent == 0);
233 if (*bidx < cp->hsz && cp->bp[*bidx].nent > 0) {
235 itemp = cp->bp[*bidx].itempp[(*iidx)++];
251 Cache *cp = *cpp;
257 if (cp == NULL) {
263 for (i = 0; i < cp->hsz; i++) {
264 bp = &cp->bp[i];
269 (void) (*cp->kffunc)(itemp->key);
271 (void) (*cp->dffunc)(itemp->data);
276 (void) Free(cp->bp);
277 (void) Free(cp);
282 del_cache(Cache *cp, Item *itemp)
293 if (cp == NULL) {
299 bidx = (*cp->hfunc)(datap, datalen, cp->hsz);
300 bp = &cp->bp[bidx];
303 if (!(*cp->cfunc)((void *)bp->itempp[iidx]->key, datap,
310 (void) (*cp->kffunc)(titemp->key);
312 (void) (*cp->dffunc)(titemp->data);
336 cache_stat(Cache *cp, char *tag)
341 if (cp == NULL) {
350 for (bidx = 0; bidx < cp->hsz; bidx++) {
351 bp = &cp->bp[bidx];
357 (bp->nalloc / cp->hsz));
369 pr_cache(Cache *cp, char *tag, void (*pfunc)(void *, int, void *, int))
376 if (cp == NULL) {
385 for (bidx = 0; bidx < cp->hsz; bidx++) {
386 bp = &cp->bp[bidx];