summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--io.c33
-rw-r--r--linux/alpha/syscallent.h4
-rw-r--r--linux/arm/syscallent.h4
-rw-r--r--linux/bfin/syscallent.h4
-rw-r--r--linux/hppa/syscallent.h4
-rw-r--r--linux/i386/syscallent.h4
-rw-r--r--linux/ia64/syscallent.h4
-rw-r--r--linux/m68k/syscallent.h4
-rw-r--r--linux/microblaze/syscallent.h4
-rw-r--r--linux/mips/syscallent.h12
-rw-r--r--linux/powerpc/syscallent.h4
-rw-r--r--linux/s390/syscallent.h4
-rw-r--r--linux/s390x/syscallent.h4
-rw-r--r--linux/sh/syscallent.h4
-rw-r--r--linux/sh64/syscallent.h4
-rw-r--r--linux/sparc/syscallent.h4
-rw-r--r--linux/syscall.h1
-rw-r--r--linux/x86_64/syscallent.h4
18 files changed, 70 insertions, 36 deletions
diff --git a/io.c b/io.c
index 7ebf0ed..d94fb26 100644
--- a/io.c
+++ b/io.c
@@ -304,6 +304,39 @@ sys_pwrite(struct tcb *tcp)
return 0;
}
+#if HAVE_SYS_UIO_H
+int
+sys_preadv(struct tcb *tcp)
+{
+ if (entering(tcp)) {
+ printfd(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ } else {
+ if (syserror(tcp)) {
+ tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
+ return 0;
+ }
+ tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+ tprintf(", %lu, ", tcp->u_arg[2]);
+ printllval(tcp, "%llu", PREAD_OFFSET_ARG);
+ }
+ return 0;
+}
+
+int
+sys_pwritev(struct tcb *tcp)
+{
+ if (entering(tcp)) {
+ printfd(tcp, tcp->u_arg[0]);
+ tprintf(", ");
+ tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+ tprintf(", %lu, ", tcp->u_arg[2]);
+ printllval(tcp, "%llu", PREAD_OFFSET_ARG);
+ }
+ return 0;
+}
+#endif /* HAVE_SYS_UIO_H */
+
int
sys_sendfile(struct tcb *tcp)
{
diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
index 3192bdf..07344bc 100644
--- a/linux/alpha/syscallent.h
+++ b/linux/alpha/syscallent.h
@@ -518,8 +518,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 487 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 488 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 489 */
- { 5, TD, printargs, "preadv" }, /* 490 */
- { 5, TD, printargs, "pwritev" }, /* 491 */
+ { 5, TD, sys_preadv, "preadv" }, /* 490 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 491 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 492 */
{ 5, TD, printargs, "perf_event_open" }, /* 493 */
{ 2, TD, printargs, "fanotify_init" }, /* 494 */
diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
index b914ca0..784b986 100644
--- a/linux/arm/syscallent.h
+++ b/linux/arm/syscallent.h
@@ -391,8 +391,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 358 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 359 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 360 */
- { 5, TD, printargs, "preadv" }, /* 361 */
- { 5, TD, printargs, "pwritev" }, /* 362 */
+ { 5, TD, sys_preadv, "preadv" }, /* 361 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 362 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 363 */
{ 5, TD, printargs, "perf_event_open"}, /* 364 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 365 */
diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h
index eb1fb9a..7cfd79d 100644
--- a/linux/bfin/syscallent.h
+++ b/linux/bfin/syscallent.h
@@ -394,8 +394,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 363 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 364 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 365 */
- { 5, TD, printargs, "preadv" }, /* 366 */
- { 5, TD, printargs, "pwritev" }, /* 367 */
+ { 5, TD, sys_preadv, "preadv" }, /* 366 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 367 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 368 */
{ 5, TD, printargs, "perf_event_open" }, /* 369 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 370 */
diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h
index 8f20bc0..119c26e 100644
--- a/linux/hppa/syscallent.h
+++ b/linux/hppa/syscallent.h
@@ -320,8 +320,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 312 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 313 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 314 */
- { 5, TD, printargs, "preadv" }, /* 315 */
- { 5, TD, printargs, "pwritev" }, /* 316 */
+ { 5, TD, sys_preadv, "preadv" }, /* 315 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 316 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 317 */
{ 5, TD, printargs, "perf_event_open" }, /* 318 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 319 */
diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
index 6e2d466..54de0ad 100644
--- a/linux/i386/syscallent.h
+++ b/linux/i386/syscallent.h
@@ -363,8 +363,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 330 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 331 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 332 */
- { 5, TD, printargs, "preadv" }, /* 333 */
- { 5, TD, printargs, "pwritev" }, /* 334 */
+ { 5, TD, sys_preadv, "preadv" }, /* 333 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 334 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 335 */
{ 5, TD, printargs, "perf_event_open"}, /* 336 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 337 */
diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h
index fbd732d..17c4500 100644
--- a/linux/ia64/syscallent.h
+++ b/linux/ia64/syscallent.h
@@ -1114,8 +1114,8 @@
{ 3, TD|TS, sys_signalfd, "signalfd" }, /* 1307 */
{ 4, TD, sys_timerfd, "timerfd" }, /* 1308 */
{ 1, TD, sys_eventfd, "eventfd" }, /* 1309 */
- { 5, TD, printargs, "preadv" }, /* 1319 */
- { 5, TD, printargs, "pwritev" }, /* 1320 */
+ { 5, TD, sys_preadv, "preadv" }, /* 1319 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 1320 */
{ 4, TS, printargs, "rt_tgsigqueueinfo"}, /* 1321 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 1322 */
{ 2, TD, printargs, "fanotify_init" }, /* 1323 */
diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h
index 1568bb6..48b5378 100644
--- a/linux/m68k/syscallent.h
+++ b/linux/m68k/syscallent.h
@@ -357,8 +357,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 326 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 327 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 328 */
- { 5, TD, printargs, "preadv" }, /* 329 */
- { 5, TD, printargs, "pwritev" }, /* 330 */
+ { 5, TD, sys_preadv, "preadv" }, /* 329 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 330 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 331 */
{ 5, TD, printargs, "perf_event_open"}, /* 332 */
{ 0, 0, sys_get_thread_area, "get_thread_area"}, /* 333 */
diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h
index 026e46a..ed6e525 100644
--- a/linux/microblaze/syscallent.h
+++ b/linux/microblaze/syscallent.h
@@ -392,8 +392,8 @@
{ 5, TN, sys_sendmsg, "sendmsg" }, /* 360 */
{ 5, TN, sys_recvmsg, "recvmsg" }, /* 361 */
{ 4, TN, sys_accept4, "accept4" }, /* 362 */
- { 5, TD, printargs, "preadv" }, /* 363 */
- { 5, TD, printargs, "pwritev" }, /* 364 */
+ { 5, TD, sys_preadv, "preadv" }, /* 363 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 364 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 365 */
{ 5, TN, printargs, "perf_event_open" }, /* 366 */
{ 5, TN, printargs, "recvmmsg" }, /* 367 */
diff --git a/linux/mips/syscallent.h b/linux/mips/syscallent.h
index 913d3d9..5756fae 100644
--- a/linux/mips/syscallent.h
+++ b/linux/mips/syscallent.h
@@ -4332,8 +4332,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 4327 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 4328 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 4329 */
- { 6, TD, printargs, "preadv" }, /* 4330 */
- { 6, TD, printargs, "pwritev" }, /* 4331 */
+ { 6, TD, sys_preadv, "preadv" }, /* 4330 */
+ { 6, TD, sys_pwritev, "pwritev" }, /* 4331 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 4332 */
{ 5, TD, printargs, "perf_event_open" }, /* 4333 */
{ 4, TN, sys_accept4, "accept4" }, /* 4334 */
@@ -5637,8 +5637,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 5286 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 5287 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 5288 */
- { 5, TD, printargs, "preadv" }, /* 5289 */
- { 5, TD, printargs, "pwritev" }, /* 5290 */
+ { 5, TD, sys_preadv, "preadv" }, /* 5289 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 5290 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 5291 */
{ 5, TD, printargs, "perf_event_open" }, /* 5292 */
{ 4, TN, sys_accept4, "accept4" }, /* 5293 */
@@ -6947,8 +6947,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 6290 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 6291 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 6292 */
- { 5, TD, printargs, "preadv" }, /* 6293 */
- { 5, TD, printargs, "pwritev" }, /* 6294 */
+ { 5, TD, sys_preadv, "preadv" }, /* 6293 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 6294 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 6295 */
{ 5, TD, printargs, "perf_event_open" }, /* 6296 */
{ 4, TN, sys_accept4, "accept4" }, /* 6297 */
diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h
index 91b13ee..aeae7ed 100644
--- a/linux/powerpc/syscallent.h
+++ b/linux/powerpc/syscallent.h
@@ -348,8 +348,8 @@
{ 2, TD, sys_pipe2, "pipe2" }, /* 317 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 318 */
{ 5, TD, printargs, "perf_event_open" }, /* 319 */
- { 5, TD, printargs, "preadv" }, /* 320 */
- { 5, TD, printargs, "pwritev" }, /* 321 */
+ { 5, TD, sys_preadv, "preadv" }, /* 320 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 321 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo" }, /* 322 */
{ 2, TD, printargs, "fanotify_init" }, /* 323 */
{ 5, TD|TF, printargs, "fanotify_mark" }, /* 324 */
diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h
index 85679de..c077731 100644
--- a/linux/s390/syscallent.h
+++ b/linux/s390/syscallent.h
@@ -356,8 +356,8 @@
{ 2, TD, sys_pipe2, "pipe2" }, /* 325 */
{ 3, TD, sys_dup3, "dup3" }, /* 326 */
{ 1, TD, sys_epoll_create1, "epoll_create1" }, /* 327 */
- { 5, TD, printargs, "preadv" }, /* 328 */
- { 5, TD, printargs, "pwritev" }, /* 329 */
+ { 5, TD, sys_preadv, "preadv" }, /* 328 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 329 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 330 */
{ 5, TD, printargs, "perf_event_open"}, /* 331 */
{ 2, TD, printargs, "fanotify_init" }, /* 332 */
diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h
index 72a4b3b..9ae284e 100644
--- a/linux/s390x/syscallent.h
+++ b/linux/s390x/syscallent.h
@@ -355,8 +355,8 @@
{ 2, TD, sys_pipe2, "pipe2" }, /* 325 */
{ 3, TD, sys_dup3, "dup3" }, /* 326 */
{ 1, TD, sys_epoll_create1, "epoll_create1" }, /* 327 */
- { 5, TD, printargs, "preadv" }, /* 328 */
- { 5, TD, printargs, "pwritev" }, /* 329 */
+ { 5, TD, sys_preadv, "preadv" }, /* 328 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 329 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 330 */
{ 5, TD, printargs, "perf_event_open"}, /* 331 */
{ 2, TD, printargs, "fanotify_init" }, /* 332 */
diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h
index 2906800..6ad858e 100644
--- a/linux/sh/syscallent.h
+++ b/linux/sh/syscallent.h
@@ -365,8 +365,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 330 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 331 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 332 */
- { 5, TD, printargs, "preadv" }, /* 333 */
- { 5, TD, printargs, "pwritev" }, /* 334 */
+ { 5, TD, sys_preadv, "preadv" }, /* 333 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 334 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 335 */
{ 5, TD, printargs, "perf_event_open"}, /* 336 */
{ 2, TD, printargs, "fanotify_init" }, /* 337 */
diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h
index 681a248..6f147a9 100644
--- a/linux/sh64/syscallent.h
+++ b/linux/sh64/syscallent.h
@@ -389,8 +389,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 358 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 359 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 360 */
- { 5, TD, printargs, "preadv" }, /* 361 */
- { 5, TD, printargs, "pwritev" }, /* 362 */
+ { 5, TD, sys_preadv, "preadv" }, /* 361 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 362 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 363 */
{ 5, TD, printargs, "perf_event_open"}, /* 364 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 365 */
diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h
index beacb87..6581748 100644
--- a/linux/sparc/syscallent.h
+++ b/linux/sparc/syscallent.h
@@ -322,8 +322,8 @@
{ 2, TD, sys_pipe2, "pipe2" }, /* 321 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 322 */
{ 4, TN, sys_accept4, "accept4" }, /* 323 */
- { 5, TD, printargs, "preadv" }, /* 324 */
- { 5, TD, printargs, "pwritev" }, /* 325 */
+ { 5, TD, sys_preadv, "preadv" }, /* 324 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 325 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 326 */
{ 5, TD, printargs, "perf_event_open"}, /* 327 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 328 */
diff --git a/linux/syscall.h b/linux/syscall.h
index e657f1e..b3a778d 100644
--- a/linux/syscall.h
+++ b/linux/syscall.h
@@ -80,6 +80,7 @@ int sys_sched_get_priority_max(), sys_sched_get_priority_min();
int sys_sched_rr_get_interval(), sys_nanosleep(), sys_mremap();
int sys_sendmsg(), sys_recvmsg(), sys_setresuid(), sys_setresgid();
int sys_getresuid(), sys_getresgid(), sys_pread(), sys_pwrite(), sys_getcwd();
+int sys_preadv(), sys_pwritev();
int sys_sigaltstack(), sys_rt_sigprocmask(), sys_rt_sigaction();
int sys_rt_sigpending(), sys_rt_sigsuspend(), sys_rt_sigqueueinfo();
int sys_rt_sigtimedwait(), sys_prctl(), sys_poll(), sys_vfork();
diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h
index 2c2ed24..c58cc82 100644
--- a/linux/x86_64/syscallent.h
+++ b/linux/x86_64/syscallent.h
@@ -293,8 +293,8 @@
{ 3, TD, sys_dup3, "dup3" }, /* 292 */
{ 2, TD, sys_pipe2, "pipe2" }, /* 293 */
{ 1, TD, sys_inotify_init1, "inotify_init1" }, /* 294 */
- { 5, TD, printargs, "preadv" }, /* 295 */
- { 5, TD, printargs, "pwritev" }, /* 296 */
+ { 5, TD, sys_preadv, "preadv" }, /* 295 */
+ { 5, TD, sys_pwritev, "pwritev" }, /* 296 */
{ 4, TP|TS, printargs, "rt_tgsigqueueinfo"}, /* 297 */
{ 5, TD, printargs, "perf_event_open"}, /* 298 */
{ 5, TN, sys_recvmmsg, "recvmmsg" }, /* 299 */