diff --git a/Makefile.am b/Makefile.am
index ef1f1d0..b6503ed 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -56,6 +56,7 @@
 	personality.c	\
 	printmode.c	\
 	process.c	\
+	process_vm.c	\
 	ptp.c		\
 	quota.c		\
 	readahead.c	\
diff --git a/process.c b/process.c
index afb86de..ede4224 100644
--- a/process.c
+++ b/process.c
@@ -2532,56 +2532,3 @@
 	}
 	return 0;
 }
-
-int
-sys_process_vm_readv(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		/* arg 1: pid */
-		tprintf("%ld, ", tcp->u_arg[0]);
-	} else {
-		/* arg 2: local iov */
-		if (syserror(tcp)) {
-			tprintf("%#lx", tcp->u_arg[1]);
-		} else {
-			tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1);
-		}
-		/* arg 3: local iovcnt */
-		tprintf(", %lu, ", tcp->u_arg[2]);
-		/* arg 4: remote iov */
-		if (syserror(tcp)) {
-			tprintf("%#lx", tcp->u_arg[3]);
-		} else {
-			tprint_iov(tcp, tcp->u_arg[4], tcp->u_arg[3], 0);
-		}
-		/* arg 5: remote iovcnt */
-		/* arg 6: flags */
-		tprintf(", %lu, %lu", tcp->u_arg[4], tcp->u_arg[5]);
-	}
-	return 0;
-}
-
-int
-sys_process_vm_writev(struct tcb *tcp)
-{
-	if (entering(tcp)) {
-		/* arg 1: pid */
-		tprintf("%ld, ", tcp->u_arg[0]);
-		/* arg 2: local iov */
-		if (syserror(tcp))
-			tprintf("%#lx", tcp->u_arg[1]);
-		else
-			tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1);
-		/* arg 3: local iovcnt */
-		tprintf(", %lu, ", tcp->u_arg[2]);
-		/* arg 4: remote iov */
-		if (syserror(tcp))
-			tprintf("%#lx", tcp->u_arg[3]);
-		else
-			tprint_iov(tcp, tcp->u_arg[4], tcp->u_arg[3], 0);
-		/* arg 5: remote iovcnt */
-		/* arg 6: flags */
-		tprintf(", %lu, %lu", tcp->u_arg[4], tcp->u_arg[5]);
-	}
-	return 0;
-}
diff --git a/process_vm.c b/process_vm.c
new file mode 100644
index 0000000..9bd85a8
--- /dev/null
+++ b/process_vm.c
@@ -0,0 +1,54 @@
+#include "defs.h"
+
+int
+sys_process_vm_readv(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		/* arg 1: pid */
+		tprintf("%ld, ", tcp->u_arg[0]);
+	} else {
+		/* arg 2: local iov */
+		if (syserror(tcp)) {
+			tprintf("%#lx", tcp->u_arg[1]);
+		} else {
+			tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1);
+		}
+		/* arg 3: local iovcnt */
+		tprintf(", %lu, ", tcp->u_arg[2]);
+		/* arg 4: remote iov */
+		if (syserror(tcp)) {
+			tprintf("%#lx", tcp->u_arg[3]);
+		} else {
+			tprint_iov(tcp, tcp->u_arg[4], tcp->u_arg[3], 0);
+		}
+		/* arg 5: remote iovcnt */
+		/* arg 6: flags */
+		tprintf(", %lu, %lu", tcp->u_arg[4], tcp->u_arg[5]);
+	}
+	return 0;
+}
+
+int
+sys_process_vm_writev(struct tcb *tcp)
+{
+	if (entering(tcp)) {
+		/* arg 1: pid */
+		tprintf("%ld, ", tcp->u_arg[0]);
+		/* arg 2: local iov */
+		if (syserror(tcp))
+			tprintf("%#lx", tcp->u_arg[1]);
+		else
+			tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1);
+		/* arg 3: local iovcnt */
+		tprintf(", %lu, ", tcp->u_arg[2]);
+		/* arg 4: remote iov */
+		if (syserror(tcp))
+			tprintf("%#lx", tcp->u_arg[3]);
+		else
+			tprint_iov(tcp, tcp->u_arg[4], tcp->u_arg[3], 0);
+		/* arg 5: remote iovcnt */
+		/* arg 6: flags */
+		tprintf(", %lu, %lu", tcp->u_arg[4], tcp->u_arg[5]);
+	}
+	return 0;
+}
