Lines Matching refs:idx
208 ssize_t dvb_ringbuffer_pkt_read_user(struct dvb_ringbuffer *rbuf, size_t idx, in dvb_ringbuffer_pkt_read_user() argument
215 pktlen = rbuf->data[idx] << 8; in dvb_ringbuffer_pkt_read_user()
216 pktlen |= rbuf->data[(idx + 1) % rbuf->size]; in dvb_ringbuffer_pkt_read_user()
220 idx = (idx + DVB_RINGBUFFER_PKTHDRSIZE + offset) % rbuf->size; in dvb_ringbuffer_pkt_read_user()
222 split = ((idx + len) > rbuf->size) ? rbuf->size - idx : 0; in dvb_ringbuffer_pkt_read_user()
224 if (copy_to_user(buf, rbuf->data+idx, split)) in dvb_ringbuffer_pkt_read_user()
228 idx = 0; in dvb_ringbuffer_pkt_read_user()
230 if (copy_to_user(buf, rbuf->data+idx, todo)) in dvb_ringbuffer_pkt_read_user()
236 ssize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx, in dvb_ringbuffer_pkt_read() argument
243 pktlen = rbuf->data[idx] << 8; in dvb_ringbuffer_pkt_read()
244 pktlen |= rbuf->data[(idx + 1) % rbuf->size]; in dvb_ringbuffer_pkt_read()
248 idx = (idx + DVB_RINGBUFFER_PKTHDRSIZE + offset) % rbuf->size; in dvb_ringbuffer_pkt_read()
250 split = ((idx + len) > rbuf->size) ? rbuf->size - idx : 0; in dvb_ringbuffer_pkt_read()
252 memcpy(buf, rbuf->data+idx, split); in dvb_ringbuffer_pkt_read()
255 idx = 0; in dvb_ringbuffer_pkt_read()
257 memcpy(buf, rbuf->data+idx, todo); in dvb_ringbuffer_pkt_read()
261 void dvb_ringbuffer_pkt_dispose(struct dvb_ringbuffer *rbuf, size_t idx) in dvb_ringbuffer_pkt_dispose() argument
265 rbuf->data[(idx + 2) % rbuf->size] = PKT_DISPOSED; in dvb_ringbuffer_pkt_dispose()
280 ssize_t dvb_ringbuffer_pkt_next(struct dvb_ringbuffer *rbuf, size_t idx, size_t* pktlen) in dvb_ringbuffer_pkt_next() argument
286 if (idx == -1) { in dvb_ringbuffer_pkt_next()
287 idx = rbuf->pread; in dvb_ringbuffer_pkt_next()
289 curpktlen = rbuf->data[idx] << 8; in dvb_ringbuffer_pkt_next()
290 curpktlen |= rbuf->data[(idx + 1) % rbuf->size]; in dvb_ringbuffer_pkt_next()
291 idx = (idx + curpktlen + DVB_RINGBUFFER_PKTHDRSIZE) % rbuf->size; in dvb_ringbuffer_pkt_next()
294 consumed = (idx - rbuf->pread) % rbuf->size; in dvb_ringbuffer_pkt_next()
298 curpktlen = rbuf->data[idx] << 8; in dvb_ringbuffer_pkt_next()
299 curpktlen |= rbuf->data[(idx + 1) % rbuf->size]; in dvb_ringbuffer_pkt_next()
300 curpktstatus = rbuf->data[(idx + 2) % rbuf->size]; in dvb_ringbuffer_pkt_next()
304 return idx; in dvb_ringbuffer_pkt_next()
308 idx = (idx + curpktlen + DVB_RINGBUFFER_PKTHDRSIZE) % rbuf->size; in dvb_ringbuffer_pkt_next()