Lines Matching defs:ent

31 static void acktr_entry_init(ngtcp2_acktr_entry *ent, int64_t pkt_num,
33 ent->pkt_num = pkt_num;
34 ent->len = 1;
35 ent->tstamp = tstamp;
38 int ngtcp2_acktr_entry_objalloc_new(ngtcp2_acktr_entry **ent, int64_t pkt_num,
41 *ent = ngtcp2_objalloc_acktr_entry_get(objalloc);
42 if (*ent == NULL) {
46 acktr_entry_init(*ent, pkt_num, tstamp);
51 void ngtcp2_acktr_entry_objalloc_del(ngtcp2_acktr_entry *ent,
53 ngtcp2_objalloc_acktr_entry_release(objalloc, ent);
109 ngtcp2_acktr_entry *ent, *prev_ent, *delent;
117 ent = ngtcp2_ksl_it_get(&it);
119 assert(ent->pkt_num >= pkt_num + (int64_t)ent->len);
121 if (ent->pkt_num == pkt_num + (int64_t)ent->len) {
122 ++ent->len;
126 ent = ngtcp2_ksl_it_get(&it);
128 assert(ent->pkt_num != pkt_num);
131 if (ent->pkt_num + 1 == pkt_num) {
132 ngtcp2_ksl_update_key(&acktr->ents, &ent->pkt_num, &pkt_num);
133 ent->pkt_num = pkt_num;
134 ent->tstamp = ts;
135 ++ent->len;
145 if (ent->pkt_num + 1 == pkt_num) {
147 prev_ent->len += ent->len + 1;
148 ngtcp2_ksl_remove_hint(&acktr->ents, NULL, &it, &ent->pkt_num);
149 ngtcp2_acktr_entry_objalloc_del(ent, &acktr->objalloc);
152 ngtcp2_ksl_update_key(&acktr->ents, &ent->pkt_num, &pkt_num);
153 ent->pkt_num = pkt_num;
154 ent->tstamp = ts;
155 ++ent->len;
167 rv = ngtcp2_acktr_entry_objalloc_new(&ent, pkt_num, ts, &acktr->objalloc);
171 rv = ngtcp2_ksl_insert(&acktr->ents, NULL, &ent->pkt_num, ent);
173 ngtcp2_acktr_entry_objalloc_del(ent, &acktr->objalloc);
196 void ngtcp2_acktr_forget(ngtcp2_acktr *acktr, ngtcp2_acktr_entry *ent) {
199 it = ngtcp2_ksl_lower_bound(&acktr->ents, &ent->pkt_num);
200 assert(*(int64_t *)ngtcp2_ksl_it_key(&it) == (int64_t)ent->pkt_num);
203 ent = ngtcp2_ksl_it_get(&it);
204 ngtcp2_ksl_remove_hint(&acktr->ents, &it, &it, &ent->pkt_num);
205 ngtcp2_acktr_entry_objalloc_del(ent, &acktr->objalloc);
221 ngtcp2_acktr_ack_entry *ent = ngtcp2_ringbuf_push_front(&acktr->acks);
223 ent->largest_ack = largest_ack;
224 ent->pkt_num = pkt_num;
226 return ent;
230 * acktr_remove removes |ent| from |acktr|. |it| must point to the
231 * node whose key identifies |ent|. The iterator which points to the
232 * entry next to |ent| is assigned to |it|.
235 ngtcp2_acktr_entry *ent) {
236 ngtcp2_ksl_remove_hint(&acktr->ents, it, it, &ent->pkt_num);
237 ngtcp2_acktr_entry_objalloc_del(ent, &acktr->objalloc);
243 ngtcp2_acktr_entry *ent;
253 ent = ngtcp2_ksl_it_get(&it);
254 acktr_remove(acktr, &it, ent);
261 ent = ngtcp2_ksl_it_get(&it);
262 if (ent->pkt_num > ack_ent->largest_ack &&
263 ack_ent->largest_ack >= ent->pkt_num - (int64_t)(ent->len - 1)) {
264 ent->len = (size_t)(ent->pkt_num - ack_ent->largest_ack);
272 ngtcp2_acktr_ack_entry *ent;
280 ent = ngtcp2_ringbuf_get(rb, j);
281 if (largest_ack >= ent->pkt_num) {
291 if (min_ack <= ent->pkt_num && ent->pkt_num <= largest_ack) {
301 if (ent->pkt_num > largest_ack) {
306 ent = ngtcp2_ringbuf_get(rb, j);
309 if (ent->pkt_num < min_ack) {