@@ -25,7 +25,7 @@
.\"
.TH VMSPLICE 2 2014-10-02 "Linux" "Linux Programmer's Manual"
.SH NAME
-vmsplice \- splice user pages into a pipe
+vmsplice, process_vmsplice \- splice user pages into a pipe
.SH SYNOPSIS
.nf
.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
@@ -34,6 +34,8 @@ vmsplice \- splice user pages into a pipe
.BI "ssize_t vmsplice(int " fd ", const struct iovec *" iov ,
.BI " unsigned long " nr_segs ", unsigned int " flags );
+.BI "ssize_t process_vmsplice(pid_t " pid ", int " fd ", const struct iovec *" iov ,
+.BI " unsigned long " nr_segs ", unsigned int " flags );
.fi
.\" Return type was long before glibc 2.7
.SH DESCRIPTION
@@ -55,6 +57,12 @@ The file descriptor
.I fd
must refer to a pipe.
+The
+.BR process_vmsplice()
+system call maps user memory from the process identified by
+.I pid
+to the local pipe.
+
The pointer
.I iov
points to an array of
@@ -114,6 +122,7 @@ Data must also be properly page aligned, both in memory and length.
.\" commit bd1a68b59c8e3bce45fb76632c64e1e063c3962d
.\"
.\" .... if we expect to later SPLICE_F_MOVE to the cache.
+
.SH RETURN VALUE
Upon successful completion,
.BR vmsplice ()
@@ -145,6 +154,15 @@ set.
.TP
.B ENOMEM
Out of memory.
+.TP
+.B ESRCH
+No process with ID
+.I pid
+exists.
+.TP
+.B EPERM
+The caller does not have permission to access the address space of the process
+.IR pid .
.SH VERSIONS
The
.BR vmsplice ()