Lines Matching refs:uio

196 uiomove_object_page(vm_object_t obj, size_t len, struct uio *uio)  in uiomove_object_page()  argument
203 idx = OFF_TO_IDX(uio->uio_offset); in uiomove_object_page()
204 offset = uio->uio_offset & PAGE_MASK; in uiomove_object_page()
219 if (uio->uio_rw == UIO_READ && m == NULL && in uiomove_object_page()
222 return (uiomove(__DECONST(void *, zero_region), tlen, uio)); in uiomove_object_page()
245 error = uiomove_fromphys(&m, offset, tlen, uio); in uiomove_object_page()
246 if (uio->uio_rw == UIO_WRITE && error == 0) in uiomove_object_page()
255 uiomove_object(vm_object_t obj, off_t obj_size, struct uio *uio) in uiomove_object() argument
262 while ((resid = uio->uio_resid) > 0) { in uiomove_object()
263 if (obj_size <= uio->uio_offset) in uiomove_object()
265 len = MIN(obj_size - uio->uio_offset, resid); in uiomove_object()
268 error = uiomove_object_page(obj, len, uio); in uiomove_object()
269 if (error != 0 || resid == uio->uio_resid) in uiomove_object()
455 shm_read(struct file *fp, struct uio *uio, struct ucred *active_cred, in shm_read() argument
468 foffset_lock_uio(fp, uio, flags); in shm_read()
469 rl_cookie = shm_rangelock_rlock(shmfd, uio->uio_offset, in shm_read()
470 uio->uio_offset + uio->uio_resid); in shm_read()
471 error = uiomove_object(shmfd->shm_object, shmfd->shm_size, uio); in shm_read()
473 foffset_unlock_uio(fp, uio, flags); in shm_read()
478 shm_write(struct file *fp, struct uio *uio, struct ucred *active_cred, in shm_write() argument
494 foffset_lock_uio(fp, uio, flags); in shm_write()
495 if (uio->uio_resid > OFF_MAX - uio->uio_offset) { in shm_write()
502 foffset_unlock_uio(fp, uio, flags); in shm_write()
508 size = uio->uio_offset + uio->uio_resid; in shm_write()
513 rl_cookie = shm_rangelock_wlock(shmfd, uio->uio_offset, size); in shm_write()
524 shmfd->shm_size, uio); in shm_write()
527 foffset_unlock_uio(fp, uio, flags); in shm_write()