Lines Matching defs:xp
118 register Ptprefix_t* xp;
124 if (!(xp = (Ptprefix_t*)dtsearch(tab->dict, &key)))
125 xp = (Ptprefix_t*)dtnext(tab->dict, &key);
129 if (xp)
131 if (key.min >= xp->min && key.max <= xp->max)
132 return xp;
133 if (key.max >= (xp->min ? (xp->min - 1) : 0))
135 if (key.min > xp->min)
136 key.min = xp->min;
139 max = xp->max;
140 pp = xp;
141 xp = (Ptprefix_t*)dtnext(tab->dict, xp);
143 } while (xp && key.max >= (xp->min - 1));
159 register Ptprefix_t* xp;
166 if (xp = (Ptprefix_t*)dtsearch(tab->dict, &key))
170 cur.min = xp->min;
171 cur.max = xp->max;
172 dtdelete(tab->dict, xp);
188 else if (key.max < xp->max)
190 xp->min = key.max + 1;
191 if (!dtinsert(tab->dict, xp))
194 } while (xp = (Ptprefix_t*)dtnext(tab->dict, xp));