Lines Matching full:stream

7  * These functions manipulate sctp stream queue/scheduling.
25 static int sctp_sched_fcfs_set(struct sctp_stream *stream, __u16 sid, in sctp_sched_fcfs_set() argument
31 static int sctp_sched_fcfs_get(struct sctp_stream *stream, __u16 sid, in sctp_sched_fcfs_get() argument
38 static int sctp_sched_fcfs_init(struct sctp_stream *stream) in sctp_sched_fcfs_init() argument
43 static int sctp_sched_fcfs_init_sid(struct sctp_stream *stream, __u16 sid, in sctp_sched_fcfs_init_sid() argument
49 static void sctp_sched_fcfs_free_sid(struct sctp_stream *stream, __u16 sid) in sctp_sched_fcfs_free_sid() argument
60 struct sctp_stream *stream = &q->asoc->stream; in sctp_sched_fcfs_dequeue() local
67 if (stream->out_curr) { in sctp_sched_fcfs_dequeue()
68 ch = list_entry(stream->out_curr->ext->outq.next, in sctp_sched_fcfs_dequeue()
86 static void sctp_sched_fcfs_sched_all(struct sctp_stream *stream) in sctp_sched_fcfs_sched_all() argument
90 static void sctp_sched_fcfs_unsched_all(struct sctp_stream *stream) in sctp_sched_fcfs_unsched_all() argument
131 static void sctp_sched_free_sched(struct sctp_stream *stream) in sctp_sched_free_sched() argument
133 struct sctp_sched_ops *sched = sctp_sched_ops_from_stream(stream); in sctp_sched_free_sched()
137 sched->unsched_all(stream); in sctp_sched_free_sched()
138 for (i = 0; i < stream->outcnt; i++) { in sctp_sched_free_sched()
139 soute = SCTP_SO(stream, i)->ext; in sctp_sched_free_sched()
142 sched->free_sid(stream, i); in sctp_sched_free_sched()
165 sctp_sched_free_sched(&asoc->stream); in sctp_sched_set_sched()
168 n->init(&asoc->stream); in sctp_sched_set_sched()
169 for (i = 0; i < asoc->stream.outcnt; i++) { in sctp_sched_set_sched()
170 if (!SCTP_SO(&asoc->stream, i)->ext) in sctp_sched_set_sched()
173 ret = n->init_sid(&asoc->stream, i, GFP_ATOMIC); in sctp_sched_set_sched()
189 sctp_sched_free_sched(&asoc->stream); in sctp_sched_set_sched()
209 if (sid >= asoc->stream.outcnt) in sctp_sched_set_value()
212 if (!SCTP_SO(&asoc->stream, sid)->ext) { in sctp_sched_set_value()
215 ret = sctp_stream_init_ext(&asoc->stream, sid); in sctp_sched_set_value()
220 return asoc->outqueue.sched->set(&asoc->stream, sid, value, gfp); in sctp_sched_set_value()
226 if (sid >= asoc->stream.outcnt) in sctp_sched_get_value()
229 if (!SCTP_SO(&asoc->stream, sid)->ext) in sctp_sched_get_value()
232 return asoc->outqueue.sched->get(&asoc->stream, sid, value); in sctp_sched_get_value()
244 * priority stream comes in. in sctp_sched_dequeue_done()
247 sout = SCTP_SO(&q->asoc->stream, sid); in sctp_sched_dequeue_done()
248 q->asoc->stream.out_curr = sout; in sctp_sched_dequeue_done()
252 q->asoc->stream.out_curr = NULL; in sctp_sched_dequeue_done()
264 int sctp_sched_init_sid(struct sctp_stream *stream, __u16 sid, gfp_t gfp) in sctp_sched_init_sid() argument
266 struct sctp_sched_ops *sched = sctp_sched_ops_from_stream(stream); in sctp_sched_init_sid()
267 struct sctp_stream_out_ext *ext = SCTP_SO(stream, sid)->ext; in sctp_sched_init_sid()
270 return sched->init_sid(stream, sid, gfp); in sctp_sched_init_sid()
273 struct sctp_sched_ops *sctp_sched_ops_from_stream(struct sctp_stream *stream) in sctp_sched_ops_from_stream() argument
277 asoc = container_of(stream, struct sctp_association, stream); in sctp_sched_ops_from_stream()