Skip to contentSkip to conversation

lapi/syscalls: Add syscall numbers for pwritev2()

PATCH New Jinhui huang 2 participants 4 messages Mar 1, 2019 – Mar 5, 2019

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/3 lapi/syscalls: Add syscall numbers for pwritev2()

---
 include/lapi/syscalls/aarch64.in   | 1 +
 include/lapi/syscalls/arm.in       | 1 +
 include/lapi/syscalls/hppa.in      | 1 +
 include/lapi/syscalls/i386.in      | 1 +
 include/lapi/syscalls/ia64.in      | 1 +
 include/lapi/syscalls/powerpc.in   | 1 +
 include/lapi/syscalls/powerpc64.in | 1 +
 include/lapi/syscalls/s390.in      | 1 +
 include/lapi/syscalls/s390x.in     | 1 +
 include/lapi/syscalls/sh.in        | 1 +
 include/lapi/syscalls/sparc.in     | 1 +
 include/lapi/syscalls/sparc64.in   | 1 +
 include/lapi/syscalls/x86_64.in    | 1 +
 13 files changed, 13 insertions(+)
include/lapi/syscalls/aarch64.in +1 -0
index bf04895..7ce1485 100644
@@ -263,4 +263,5 @@ execveat 281
 mlock2 284
 copy_file_range 285
 preadv2 286
+pwritev2 287
 _sysctl 1078
include/lapi/syscalls/arm.in +1 -0
index e720b08..22c76d4 100644
@@ -347,4 +347,5 @@ membarrier (__NR_SYSCALL_BASE+389)
 mlock2 (__NR_SYSCALL_BASE+390)
 copy_file_range (__NR_SYSCALL_BASE+391)
 preadv2 (__NR_SYSCALL_BASE+392)
+pwritev2 (__NR_SYSCALL_BASE+393)
 statx (__NR_SYSCALL_BASE+397)
include/lapi/syscalls/hppa.in +1 -0
index 182d393..a0dd230 100644
@@ -24,3 +24,4 @@ execveat 342
 mlock2 345
 copy_file_range 346
 preadv2 347
+pwritev2 348
include/lapi/syscalls/i386.in +1 -0
index 2fb0188..7e485ae 100644
@@ -345,4 +345,5 @@ membarrier 375
 mlock2 376
 copy_file_range 377
 preadv2 378
+pwritev2 379
 statx 383
include/lapi/syscalls/ia64.in +1 -0
index 081c9ed..7c9a0ea 100644
@@ -303,3 +303,4 @@ execveat 1342
 mlock2 1346
 copy_file_range 1347
 preadv2 1348
+pwritev2 1349
include/lapi/syscalls/powerpc.in +1 -0
index d16f9f9..fc1f899 100644
@@ -352,4 +352,5 @@ execveat 362
 mlock2 378
 copy_file_range 379
 preadv2 380
+pwritev2 381
 statx 383
include/lapi/syscalls/powerpc64.in +1 -0
index d16f9f9..fc1f899 100644
@@ -352,4 +352,5 @@ execveat 362
 mlock2 378
 copy_file_range 379
 preadv2 380
+pwritev2 381
 statx 383
include/lapi/syscalls/s390.in +1 -0
index 4019438..6d0c895 100644
@@ -336,3 +336,4 @@ execveat 354
 mlock2 374
 copy_file_range 375
 preadv2 376
+pwritev2 377
include/lapi/syscalls/s390x.in +1 -0
index e156b09..8105b55 100644
@@ -335,3 +335,4 @@ execveat 354
 mlock2 374
 copy_file_range 375
 preadv2 376
+pwritev2 377
include/lapi/syscalls/sh.in +1 -0
index 8520bb1..a942fb5 100644
@@ -368,3 +368,4 @@ execveat 387
 mlock2 390
 copy_file_range 391
 preadv2 392
+pwritev2 393
include/lapi/syscalls/sparc.in +1 -0
index b7bb135..20a21a9 100644
@@ -341,3 +341,4 @@ execveat 350
 mlock2 356
 copy_file_range 357
 preadv2 358
+pwritev2 359
include/lapi/syscalls/sparc64.in +1 -0
index a211df8..36ab394 100644
@@ -317,3 +317,4 @@ execveat 350
 mlock2 356
 copy_file_range 357
 preadv2 358
+pwritev2 359
include/lapi/syscalls/x86_64.in +1 -0
index dae5769..580b298 100644
@@ -312,4 +312,5 @@ membarrier 324
 mlock2 325
 copy_file_range 326
 preadv2 327
+pwritev2 359
 statx 332
Signature · 1 line
1.8.3.1
#1 lore raw

PATCH v2 2/3 syscalls/pwritev201: Add new testcase

Check the basic functionality of the pwritev2().

---
 configure.ac                                    |   1 +
 include/lapi/pwritev2.h                         |  26 ++++++
 m4/ltp-pwritev2.m4                              |   9 ++
 runtest/syscalls                                |   3 +
 testcases/kernel/syscalls/pwritev2/.gitignore   |   2 +
 testcases/kernel/syscalls/pwritev2/Makefile     |  13 +++
 testcases/kernel/syscalls/pwritev2/pwritev201.c | 119 ++++++++++++++++++++++++
 7 files changed, 173 insertions(+)
 create mode 100644 include/lapi/pwritev2.h
 create mode 100644 m4/ltp-pwritev2.m4
 create mode 100644 testcases/kernel/syscalls/pwritev2/.gitignore
 create mode 100644 testcases/kernel/syscalls/pwritev2/Makefile
 create mode 100644 testcases/kernel/syscalls/pwritev2/pwritev201.c
configure.ac +1 -0
index d15bff3..e73f7d9 100644
@@ -219,6 +219,7 @@ LTP_CHECK_KCMP_TYPE
 LTP_CHECK_PREADV
 LTP_CHECK_PWRITEV
 LTP_CHECK_PREADV2
+LTP_CHECK_PWRITEV2
 LTP_CHECK_EPOLL_PWAIT
 LTP_CHECK_KEYUTILS_SUPPORT
 LTP_CHECK_SYNC_ADD_AND_FETCH
include/lapi/pwritev2.h new file +26 -0
new file mode 100644
index 0000000..305e48e
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2019 FUJITSU LIMITED. All rights reserved.
+ * Author: Jinhui Huang <[email protected]>
+ */
+
+#ifndef PWRITEV2_H
+#define PWRITEV2_H
+
+#include "config.h"
+#include "lapi/syscalls.h"
+
+#if !defined(HAVE_PWRITEV2)
+
+/* LO_HI_LONG taken from glibc */
+# define LO_HI_LONG(val) (long) (val), (long) (((uint64_t) (val)) >> 32)
+
+ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset,
+		int flags)
+{
+	return tst_syscall(__NR_pwritev2, fd, iov, iovcnt,
+			   LO_HI_LONG(offset), flags);
+}
+#endif
+
+#endif /* PWRITEV2_H */
m4/ltp-pwritev2.m4 new file +9 -0
new file mode 100644
index 0000000..38148ac
@@ -0,0 +1,9 @@
+dnl SPDX-License-Identifier: GPL-2.0-or-later
+dnl Copyright (c) 2019 FUJITSU LIMITED. All rights reserved.
+dnl Author: Jinhui Huang <[email protected]>
+
+dnl LTP_CHECK_PWRITEV2
+dnl ----------------------------
+AC_DEFUN([LTP_CHECK_PWRITEV2],[
+AC_CHECK_FUNCS(pwritev2,,)
+])
runtest/syscalls +3 -0
index 0af0f44..73caa61 100644
@@ -912,6 +912,9 @@ pwritev02_64 pwritev02_64
 pwritev03 pwritev03
 pwritev03_64 pwritev03_64
 
+pwritev201 pwritev201
+pwritev201_64 pwritev201_64
+
 quotactl01 quotactl01
 quotactl02 quotactl02
 quotactl03 quotactl03
testcases/kernel/syscalls/pwritev2/.gitignore new file +2 -0
new file mode 100644
index 0000000..46270c3
@@ -0,0 +1,2 @@
+/pwritev201
+/pwritev201_64
testcases/kernel/syscalls/pwritev2/Makefile new file +13 -0
new file mode 100644
index 0000000..89756d0
@@ -0,0 +1,13 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (c) 2019 FUJITSU LIMITED. All rights reserved.
+# Author: Jinhui Huang <[email protected]>
+
+top_srcdir              ?= ../../../..
+
+include $(top_srcdir)/include/mk/testcases.mk
+
+include $(abs_srcdir)/../utils/newer_64.mk
+
+%_64: CPPFLAGS += -D_FILE_OFFSET_BITS=64
+
+include $(top_srcdir)/include/mk/generic_leaf_target.mk
testcases/kernel/syscalls/pwritev2/pwritev201.c new file +119 -0

119 lines not on this page · raw message

Signature · 1 line
1.8.3.1
#2 lore raw

PATCH v2 3/3 syscalls/pwitev202: Add new testcase

In reply to Jinhui huang

Check various errnos for the pwitev2().

---
 runtest/syscalls                                |   2 +
 testcases/kernel/syscalls/pwritev2/.gitignore   |   2 +
 testcases/kernel/syscalls/pwritev2/pwritev202.c | 117 ++++++++++++++++++++++++
 3 files changed, 121 insertions(+)
 create mode 100644 testcases/kernel/syscalls/pwritev2/pwritev202.c
runtest/syscalls +2 -0
index 73caa61..0a9e8c4 100644
@@ -914,6 +914,8 @@ pwritev03_64 pwritev03_64
 
 pwritev201 pwritev201
 pwritev201_64 pwritev201_64
+pwritev202 pwritev202
+pwritev202_64 pwritev202_64
 
 quotactl01 quotactl01
 quotactl02 quotactl02
testcases/kernel/syscalls/pwritev2/.gitignore +2 -0
index 46270c3..40030d9 100644
@@ -1,2 +1,4 @@
 /pwritev201
 /pwritev201_64
+/pwritev202
+/pwritev202_64
testcases/kernel/syscalls/pwritev2/pwritev202.c new file +117 -0

117 lines not on this page · raw message

Signature · 1 line
1.8.3.1
#3 lore raw

PATCH v2 1/3 lapi/syscalls: Add syscall numbers for pwritev2()

In reply to Jinhui huang

Hi Jinhui,

Thanks for your patchset, pushed with minor fixes:
1) Fix wrong syscall number for x86_64
2) Fix typos(i.e. pwritev->pwritev2, pwitev2->pwritev2)

Best Regards,
Xiao Yang

Quoted 140 lines · Jinhui huang
---
 include/lapi/syscalls/aarch64.in   | 1 +
 include/lapi/syscalls/arm.in       | 1 +
 include/lapi/syscalls/hppa.in      | 1 +
 include/lapi/syscalls/i386.in      | 1 +
 include/lapi/syscalls/ia64.in      | 1 +
 include/lapi/syscalls/powerpc.in   | 1 +
 include/lapi/syscalls/powerpc64.in | 1 +
 include/lapi/syscalls/s390.in      | 1 +
 include/lapi/syscalls/s390x.in     | 1 +
 include/lapi/syscalls/sh.in        | 1 +
 include/lapi/syscalls/sparc.in     | 1 +
 include/lapi/syscalls/sparc64.in   | 1 +
 include/lapi/syscalls/x86_64.in    | 1 +
 13 files changed, 13 insertions(+)
include/lapi/syscalls/aarch64.in +1 -0
index bf04895..7ce1485 100644
@@ -263,4 +263,5 @@ execveat 281
 mlock2 284
 copy_file_range 285
 preadv2 286
+pwritev2 287
 _sysctl 1078
include/lapi/syscalls/arm.in +1 -0
index e720b08..22c76d4 100644
@@ -347,4 +347,5 @@ membarrier (__NR_SYSCALL_BASE+389)
 mlock2 (__NR_SYSCALL_BASE+390)
 copy_file_range (__NR_SYSCALL_BASE+391)
 preadv2 (__NR_SYSCALL_BASE+392)
+pwritev2 (__NR_SYSCALL_BASE+393)
 statx (__NR_SYSCALL_BASE+397)
include/lapi/syscalls/hppa.in +1 -0
index 182d393..a0dd230 100644
@@ -24,3 +24,4 @@ execveat 342
 mlock2 345
 copy_file_range 346
 preadv2 347
+pwritev2 348
include/lapi/syscalls/i386.in +1 -0
index 2fb0188..7e485ae 100644
@@ -345,4 +345,5 @@ membarrier 375
 mlock2 376
 copy_file_range 377
 preadv2 378
+pwritev2 379
 statx 383
include/lapi/syscalls/ia64.in +1 -0
index 081c9ed..7c9a0ea 100644
@@ -303,3 +303,4 @@ execveat 1342
 mlock2 1346
 copy_file_range 1347
 preadv2 1348
+pwritev2 1349
include/lapi/syscalls/powerpc.in +1 -0
index d16f9f9..fc1f899 100644
@@ -352,4 +352,5 @@ execveat 362
 mlock2 378
 copy_file_range 379
 preadv2 380
+pwritev2 381
 statx 383
include/lapi/syscalls/powerpc64.in +1 -0
index d16f9f9..fc1f899 100644
@@ -352,4 +352,5 @@ execveat 362
 mlock2 378
 copy_file_range 379
 preadv2 380
+pwritev2 381
 statx 383
include/lapi/syscalls/s390.in +1 -0
index 4019438..6d0c895 100644
@@ -336,3 +336,4 @@ execveat 354
 mlock2 374
 copy_file_range 375
 preadv2 376
+pwritev2 377
include/lapi/syscalls/s390x.in +1 -0
index e156b09..8105b55 100644
@@ -335,3 +335,4 @@ execveat 354
 mlock2 374
 copy_file_range 375
 preadv2 376
+pwritev2 377
include/lapi/syscalls/sh.in +1 -0
index 8520bb1..a942fb5 100644
@@ -368,3 +368,4 @@ execveat 387
 mlock2 390
 copy_file_range 391
 preadv2 392
+pwritev2 393
include/lapi/syscalls/sparc.in +1 -0
index b7bb135..20a21a9 100644
@@ -341,3 +341,4 @@ execveat 350
 mlock2 356
 copy_file_range 357
 preadv2 358
+pwritev2 359
include/lapi/syscalls/sparc64.in +1 -0
index a211df8..36ab394 100644
@@ -317,3 +317,4 @@ execveat 350
 mlock2 356
 copy_file_range 357
 preadv2 358
+pwritev2 359
include/lapi/syscalls/x86_64.in +1 -0
index dae5769..580b298 100644
@@ -312,4 +312,5 @@ membarrier 324
 mlock2 325
 copy_file_range 326
 preadv2 327
+pwritev2 359
 statx 332