vm: region: memmove_v() now supports iovec arrays stored in userspace
This commit is contained in:
@@ -876,6 +876,15 @@ kern_status_t vm_region_map_object(
|
||||
return KERN_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
tracek("vm_region_map_object(%s, %zx, %s, %zx, %zx, %x, %p)",
|
||||
region->vr_name,
|
||||
region_offset,
|
||||
object->vo_name,
|
||||
object_offset,
|
||||
length,
|
||||
prot,
|
||||
out);
|
||||
|
||||
struct vm_region_mapping *mapping
|
||||
= vm_cache_alloc(&mapping_cache, VM_NORMAL);
|
||||
if (!mapping) {
|
||||
@@ -1339,8 +1348,8 @@ extern kern_status_t vm_region_memmove_v(
|
||||
size_t bytes_to_move)
|
||||
{
|
||||
struct iovec_iterator src, dest;
|
||||
iovec_iterator_begin(&src, src_vecs, nr_src_vecs);
|
||||
iovec_iterator_begin(&dest, dest_vecs, nr_dest_vecs);
|
||||
iovec_iterator_begin_user(&src, src_region, src_vecs, nr_src_vecs);
|
||||
iovec_iterator_begin_user(&dest, dest_region, dest_vecs, nr_dest_vecs);
|
||||
|
||||
iovec_iterator_seek(&src, src_offset);
|
||||
iovec_iterator_seek(&dest, dest_offset);
|
||||
|
||||
Reference in New Issue
Block a user