Lines Matching refs:t

175 	struct link_transaction *t;  in link_transaction_lookup()  local
177 list_for_each_entry(t, &pending_transaction_list, link) { in link_transaction_lookup()
178 if (t->request_node == request_node && in link_transaction_lookup()
179 t->response_node == response_node && in link_transaction_lookup()
180 t->tlabel == tlabel) in link_transaction_lookup()
181 return t; in link_transaction_lookup()
184 t = malloc(sizeof *t); in link_transaction_lookup()
185 if (!t) in link_transaction_lookup()
187 t->request_node = request_node; in link_transaction_lookup()
188 t->response_node = response_node; in link_transaction_lookup()
189 t->tlabel = tlabel; in link_transaction_lookup()
190 list_init(&t->request_list); in link_transaction_lookup()
191 list_init(&t->response_list); in link_transaction_lookup()
193 list_append(&pending_transaction_list, &t->link); in link_transaction_lookup()
195 return t; in link_transaction_lookup()
199 link_transaction_destroy(struct link_transaction *t) in link_transaction_destroy() argument
203 while (!list_empty(&t->request_list)) { in link_transaction_destroy()
204 sa = list_head(&t->request_list, struct subaction, link); in link_transaction_destroy()
208 while (!list_empty(&t->response_list)) { in link_transaction_destroy()
209 sa = list_head(&t->response_list, struct subaction, link); in link_transaction_destroy()
213 free(t); in link_transaction_destroy()
218 int (*decode)(struct link_transaction *t);
226 handle_transaction(struct link_transaction *t) in handle_transaction() argument
231 if (!t->request) { in handle_transaction()
237 if (protocol_decoders[i].decode(t)) in handle_transaction()
243 decode_link_packet(&t->request->packet, t->request->length, in handle_transaction()
245 if (t->response) in handle_transaction()
246 decode_link_packet(&t->response->packet, t->request->length, in handle_transaction()
252 list_for_each_entry(sa, &t->request_list, link) in handle_transaction()
254 list_for_each_entry(sa, &t->response_list, link) in handle_transaction()
259 link_transaction_destroy(t); in handle_transaction()
265 struct link_transaction *t; in clear_pending_transaction_list() local
268 t = list_head(&pending_transaction_list, in clear_pending_transaction_list()
270 list_remove(&t->link); in clear_pending_transaction_list()
271 link_transaction_destroy(t); in clear_pending_transaction_list()
499 struct link_transaction *t; in handle_request_packet() local
501 t = link_transaction_lookup(p->common.source, p->common.destination, in handle_request_packet()
504 t->request = sa; in handle_request_packet()
506 if (!list_empty(&t->request_list)) { in handle_request_packet()
507 prev = list_tail(&t->request_list, in handle_request_packet()
526 list_append(&t->request_list, &sa->link); in handle_request_packet()
533 list_remove(&t->link); in handle_request_packet()
534 handle_transaction(t); in handle_request_packet()
540 list_remove(&t->link); in handle_request_packet()
541 handle_transaction(t); in handle_request_packet()
564 struct link_transaction *t; in handle_response_packet() local
566 t = link_transaction_lookup(p->common.destination, p->common.source, in handle_response_packet()
568 if (list_empty(&t->request_list)) { in handle_response_packet()
573 t->response = sa; in handle_response_packet()
575 if (!list_empty(&t->response_list)) { in handle_response_packet()
576 prev = list_tail(&t->response_list, struct subaction, link); in handle_response_packet()
591 prev = list_tail(&t->request_list, struct subaction, link); in handle_response_packet()
605 list_append(&t->response_list, &sa->link); in handle_response_packet()
612 list_remove(&t->link); in handle_response_packet()
613 handle_transaction(t); in handle_response_packet()