Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\process_vm_access.c Create Date:2022-07-28 15:01:32
Last Modify:2020-03-17 21:52:24 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:process_vm_rw - check iovecs before calling core routine*@pid: PID of process to read/write from/to*@lvec: iovec array specifying where to copy to/from locally*@liovcnt: size of lvec array*@rvec: iovec array specifying where to copy to/from in the other

Proto:static ssize_t process_vm_rw(pid_t pid, const struct iovec __user *lvec, unsigned long liovcnt, const struct iovec __user *rvec, unsigned long riovcnt, unsigned long flags, int vm_write)

Type:ssize_t

Parameter:

TypeParameterName
pid_tpid
const struct iovec __user *lvec
unsigned longliovcnt
const struct iovec __user *rvec
unsigned longriovcnt
unsigned longflags
intvm_write
263  iov_l = iovstack_l
264  iov_r = iovstack_r
267  dir = If vm_write Then WRITE Else generic data direction definitions
269  If flags != 0 Then Return -EINVAL
273  rc = mport_iovec() - Copy an array of &struct iovec from userspace* into the kernel, check that it is valid, and initialize a new* &struct iov_iter iterator to access it.*@type: One of %READ or %WRITE.*@uvector: Pointer to the userspace array.
274  If rc < 0 Then Return rc
276  If Not iov_iter_count( & iter) Then Go to free_iovecs
279  rc = rw_copy_check_uvector(Flag for rw_copy_check_uvector and compat_rw_copy_check_uvector* that indicates that they should check the contents of the iovec are* valid, but not check the memory that the iovec elements* points too., rvec, riovcnt, UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1), iovstack_r, & iov_r)
281  If rc <= 0 Then Go to free_iovecs
284  rc = process_vm_rw_core - core of reading/writing pages from task specified*@pid: PID of process to read/write from/to*@iter: where to copy to/from locally*@rvec: iovec array specifying where to copy to/from in the other process*@riovcnt: size of rvec
286  free_iovecs :
287  If iov_r != iovstack_r Then kfree(iov_r)
289  kfree(iov_l)
291  Return rc
Caller
NameDescribe
SYSCALL_DEFINE6
SYSCALL_DEFINE6