Lines Matching defs:hole
171 struct sackhole *hole;
177 hole = pool_get(&sackhole_pool, PR_NOWAIT);
178 if (hole == NULL) {
184 return hole;
191 struct sackhole *hole;
193 hole = sack_allochole(tp);
194 if (hole == NULL) {
197 hole->start = hole->rxmit = start;
198 hole->end = end;
200 TAILQ_INSERT_AFTER(&tp->snd_holes, prev, hole, sackhole_q);
202 TAILQ_INSERT_TAIL(&tp->snd_holes, hole, sackhole_q);
204 return hole;
208 sack_removehole(struct tcpcb *tp, struct sackhole *hole)
212 next = TAILQ_NEXT(hole, sackhole_q);
215 TAILQ_REMOVE(&tp->snd_holes, hole, sackhole_q);
216 pool_put(&sackhole_pool, hole);
318 /* First hole. */
331 /* SACKs data before the current hole */
335 /* SACKs data beyond the current hole */
341 /* Data acks at least the beginning of hole */
343 /* Acks entire hole, so delete hole */
348 /* Otherwise, move start of hole forward */
355 /* Move end of hole backward. */
365 * ACKs some data in middle of a hole; need to
366 * split current hole
384 * Need to append new hole at end.
432 /* Free up the SACK hole list. */
455 /* old SACK hole */
485 * i) snd_nxt lies between end of one hole and beginning of another
486 * ii) snd_nxt lies between end of last hole and rcv_lastsack