Lines Matching refs:event
74 struct sctp_ulpevent *event; in sctp_ulpq_flush() local
77 event = sctp_skb2event(skb); in sctp_ulpq_flush()
78 sctp_ulpevent_free(event); in sctp_ulpq_flush()
82 event = sctp_skb2event(skb); in sctp_ulpq_flush()
83 sctp_ulpevent_free(event); in sctp_ulpq_flush()
99 struct sctp_ulpevent *event; in sctp_ulpq_tail_data() local
103 event = sctp_ulpevent_make_rcvmsg(chunk->asoc, chunk, gfp); in sctp_ulpq_tail_data()
104 if (!event) in sctp_ulpq_tail_data()
108 event = sctp_ulpq_reasm(ulpq, event); in sctp_ulpq_tail_data()
111 if ((event) && (event->msg_flags & MSG_EOR)) { in sctp_ulpq_tail_data()
114 __skb_queue_tail(&temp, sctp_event2skb(event)); in sctp_ulpq_tail_data()
116 event = sctp_ulpq_order(ulpq, event); in sctp_ulpq_tail_data()
122 if (event) { in sctp_ulpq_tail_data()
123 event_eor = (event->msg_flags & MSG_EOR) ? 1 : 0; in sctp_ulpq_tail_data()
124 sctp_ulpq_tail_event(ulpq, event); in sctp_ulpq_tail_data()
157 struct sctp_ulpevent *event; in sctp_clear_pd() local
160 event = sctp_skb2event(skb); in sctp_clear_pd()
161 if (event->asoc == asoc) { in sctp_clear_pd()
193 int sctp_ulpq_tail_event(struct sctp_ulpq *ulpq, struct sctp_ulpevent *event) in sctp_ulpq_tail_event() argument
197 struct sk_buff *skb = sctp_event2skb(event); in sctp_ulpq_tail_event()
208 if (!sctp_ulpevent_is_notification(event)) { in sctp_ulpq_tail_event()
213 if (!sctp_ulpevent_is_enabled(event, &sctp_sk(sk)->subscribe)) in sctp_ulpq_tail_event()
230 if ((event->msg_flags & MSG_NOTIFICATION) || in sctp_ulpq_tail_event()
232 (event->msg_flags & SCTP_DATA_FRAG_MASK))) in sctp_ulpq_tail_event()
235 clear_pd = event->msg_flags & MSG_EOR; in sctp_ulpq_tail_event()
274 sctp_ulpevent_free(event); in sctp_ulpq_tail_event()
283 struct sctp_ulpevent *event) in sctp_ulpq_store_reasm() argument
289 tsn = event->tsn; in sctp_ulpq_store_reasm()
294 __skb_queue_tail(&ulpq->reasm, sctp_event2skb(event)); in sctp_ulpq_store_reasm()
302 __skb_queue_tail(&ulpq->reasm, sctp_event2skb(event)); in sctp_ulpq_store_reasm()
316 __skb_queue_before(&ulpq->reasm, pos, sctp_event2skb(event)); in sctp_ulpq_store_reasm()
333 struct sctp_ulpevent *event; in sctp_make_reassembled_event() local
397 event = sctp_skb2event(f_frag); in sctp_make_reassembled_event()
400 return event; in sctp_make_reassembled_event()
587 struct sctp_ulpevent *event) in sctp_ulpq_reasm() argument
592 if (SCTP_DATA_NOT_FRAG == (event->msg_flags & SCTP_DATA_FRAG_MASK)) { in sctp_ulpq_reasm()
593 event->msg_flags |= MSG_EOR; in sctp_ulpq_reasm()
594 return event; in sctp_ulpq_reasm()
597 sctp_ulpq_store_reasm(ulpq, event); in sctp_ulpq_reasm()
606 ctsn = event->tsn; in sctp_ulpq_reasm()
697 struct sctp_ulpevent *event; in sctp_ulpq_reasm_flushtsn() local
704 event = sctp_skb2event(pos); in sctp_ulpq_reasm_flushtsn()
705 tsn = event->tsn; in sctp_ulpq_reasm_flushtsn()
714 sctp_ulpevent_free(event); in sctp_ulpq_reasm_flushtsn()
727 struct sctp_ulpevent *event = NULL; in sctp_ulpq_reasm_drain() local
733 while ((event = sctp_ulpq_retrieve_reassembled(ulpq)) != NULL) { in sctp_ulpq_reasm_drain()
735 if ((event) && (event->msg_flags & MSG_EOR)) { in sctp_ulpq_reasm_drain()
737 __skb_queue_tail(&temp, sctp_event2skb(event)); in sctp_ulpq_reasm_drain()
739 event = sctp_ulpq_order(ulpq, event); in sctp_ulpq_reasm_drain()
745 if (event) in sctp_ulpq_reasm_drain()
746 sctp_ulpq_tail_event(ulpq, event); in sctp_ulpq_reasm_drain()
755 struct sctp_ulpevent *event) in sctp_ulpq_retrieve_ordered() argument
763 sid = event->stream; in sctp_ulpq_retrieve_ordered()
766 event_list = (struct sk_buff_head *) sctp_event2skb(event)->prev; in sctp_ulpq_retrieve_ordered()
797 struct sctp_ulpevent *event) in sctp_ulpq_store_ordered() argument
806 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event)); in sctp_ulpq_store_ordered()
810 sid = event->stream; in sctp_ulpq_store_ordered()
811 ssn = event->ssn; in sctp_ulpq_store_ordered()
817 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event)); in sctp_ulpq_store_ordered()
822 __skb_queue_tail(&ulpq->lobby, sctp_event2skb(event)); in sctp_ulpq_store_ordered()
842 __skb_queue_before(&ulpq->lobby, pos, sctp_event2skb(event)); in sctp_ulpq_store_ordered()
846 struct sctp_ulpevent *event) in sctp_ulpq_order() argument
852 if (SCTP_DATA_UNORDERED & event->msg_flags) in sctp_ulpq_order()
853 return event; in sctp_ulpq_order()
856 sid = event->stream; in sctp_ulpq_order()
857 ssn = event->ssn; in sctp_ulpq_order()
865 sctp_ulpq_store_ordered(ulpq, event); in sctp_ulpq_order()
875 sctp_ulpq_retrieve_ordered(ulpq, event); in sctp_ulpq_order()
877 return event; in sctp_ulpq_order()
887 struct sctp_ulpevent *event; in sctp_ulpq_reap_ordered() local
897 event = NULL; in sctp_ulpq_reap_ordered()
916 if (!event) in sctp_ulpq_reap_ordered()
918 event = sctp_skb2event(pos); in sctp_ulpq_reap_ordered()
927 if (event == NULL && pos != (struct sk_buff *)lobby) { in sctp_ulpq_reap_ordered()
936 event = sctp_skb2event(pos); in sctp_ulpq_reap_ordered()
943 if (event) { in sctp_ulpq_reap_ordered()
945 sctp_ulpq_retrieve_ordered(ulpq, event); in sctp_ulpq_reap_ordered()
946 sctp_ulpq_tail_event(ulpq, event); in sctp_ulpq_reap_ordered()
979 struct sctp_ulpevent *event; in sctp_ulpq_renege_list() local
985 event = sctp_skb2event(skb); in sctp_ulpq_renege_list()
986 tsn = event->tsn; in sctp_ulpq_renege_list()
1009 sctp_ulpevent_free(event); in sctp_ulpq_renege_list()
1037 struct sctp_ulpevent *event; in sctp_ulpq_partial_delivery() local
1069 event = sctp_ulpq_retrieve_first(ulpq); in sctp_ulpq_partial_delivery()
1071 if (event) { in sctp_ulpq_partial_delivery()
1072 sctp_ulpq_tail_event(ulpq, event); in sctp_ulpq_partial_delivery()