Lines Matching defs:xp
137 register Ptvprefix_t* xp;
150 if (!(xp = (Ptvprefix_t*)dtsearch(tab->dict, &key)))
151 xp = (Ptvprefix_t*)dtnext(tab->dict, &key);
155 if (xp)
157 if (fvcmp(tab->size, key.min, xp->min) >= 0 && fvcmp(tab->size, key.max, xp->max) <= 0)
158 return xp;
159 if (fvcmp(tab->size, xp->min, tab->r[2]) >= 0)
160 fvsub(tab->size, tab->r[3], xp->min, tab->r[2]);
165 if (fvcmp(tab->size, key.min, xp->min) > 0)
166 key.min = xp->min;
169 max = xp->max;
170 pp = xp;
171 xp = (Ptvprefix_t*)dtnext(tab->dict, xp);
173 if (!xp)
175 fvsub(tab->size, tab->r[3], xp->min, tab->r[1]);
192 register Ptvprefix_t* xp;
199 if (xp = (Ptvprefix_t*)dtsearch(tab->dict, &key))
204 cur.min = xp->min;
205 cur.max = xp->max;
206 dtdelete(tab->dict, xp);
224 else if (fvcmp(tab->size, key.max, xp->max) < 0)
227 xp->min = tab->r[3];
228 if (!dtinsert(tab->dict, xp))
231 } while (xp = (Ptvprefix_t*)dtnext(tab->dict, xp));