Lines Matching refs:pread
40 rbuf->pread=rbuf->pwrite=0;
60 return (rbuf->pread == smp_load_acquire(&rbuf->pwrite));
74 free = READ_ONCE(rbuf->pread) - rbuf->pwrite;
90 avail = smp_load_acquire(&rbuf->pwrite) - rbuf->pread;
106 smp_store_release(&rbuf->pread, smp_load_acquire(&rbuf->pwrite));
116 smp_store_release(&rbuf->pread, 0);
138 split = (rbuf->pread + len > rbuf->size) ? rbuf->size - rbuf->pread : 0;
140 if (copy_to_user(buf, rbuf->data+rbuf->pread, split))
148 smp_store_release(&rbuf->pread, 0);
150 if (copy_to_user(buf, rbuf->data+rbuf->pread, todo))
154 smp_store_release(&rbuf->pread, (rbuf->pread + todo) % rbuf->size);
164 split = (rbuf->pread + len > rbuf->size) ? rbuf->size - rbuf->pread : 0;
166 memcpy(buf, rbuf->data+rbuf->pread, split);
173 smp_store_release(&rbuf->pread, 0);
175 memcpy(buf, rbuf->data+rbuf->pread, todo);
178 smp_store_release(&rbuf->pread, (rbuf->pread + todo) % rbuf->size);
331 idx = rbuf->pread;
338 consumed = (idx - rbuf->pread);