Lines Matching defs:uio
45 #include <sys/uio.h>
164 dev_mem_readwrite(struct uio *uio, struct iovec *iov)
175 if ((uintptr_t)uio->uio_offset != uio->uio_offset) {
178 paddr = uio->uio_offset & ~PAGE_MASK;
179 prot = (uio->uio_rw == UIO_WRITE) ? VM_PROT_WRITE : VM_PROT_READ;
184 offset = uio->uio_offset & PAGE_MASK;
185 len = MIN(uio->uio_resid, PAGE_SIZE - offset);
213 error = uiomove((void *)vaddr, len, uio);
225 error = uiomove((void *)vaddr, len, uio);
234 dev_kmem_readwrite(struct uio *uio, struct iovec *iov)
243 addr = (void *)(intptr_t)uio->uio_offset;
244 if ((uintptr_t)addr != uio->uio_offset) {
251 offset = uio->uio_offset & PAGE_MASK;
252 len = MIN(uio->uio_resid, PAGE_SIZE - offset);
253 prot = (uio->uio_rw == UIO_WRITE) ? VM_PROT_WRITE : VM_PROT_READ;
284 error = uiomove(addr, len, uio);
292 dev_zero_readwrite(struct uio *uio, struct iovec *iov)
297 if (uio->uio_rw == UIO_WRITE) {
298 uio->uio_resid = 0;
306 return uiomove(dev_zero_page, len, uio);
313 mm_readwrite(dev_t dev, struct uio *uio, int flags)
330 return mm_md_readwrite(dev, uio);
334 while (uio->uio_resid > 0 && error == 0) {
335 iov = uio->uio_iov;
338 uio->uio_iov++;
339 uio->uio_iovcnt--;
340 KASSERT(uio->uio_iovcnt >= 0);
346 error = dev_mem_readwrite(uio, iov);
349 error = dev_kmem_readwrite(uio, iov);
352 if (uio->uio_rw == UIO_WRITE) {
353 uio->uio_resid = 0;
358 if (uio->uio_rw == UIO_WRITE) {
367 error = dev_zero_readwrite(uio, iov);