Blob Blame History Raw
From dd6b70f5d4db14b432f424071d262e87fa944c96 Mon Sep 17 00:00:00 2001
From: "Dmitry V. Levin" <ldv@altlinux.org>
Date: Sun, 28 Jun 2020 08:00:00 +0000
Subject: [PATCH 115/115] xlat: update IORING_* constants

* xlat/uring_ops.in (IORING_OP_TEE): New constant introduced by Linux
kernel commit v5.8-rc1~190^2~14.
* tests/io_uring_register.c: Update expected output.
---
 tests/io_uring_register.c | 12 ++++++------
 xlat/uring_ops.in         |  1 +
 2 files changed, 7 insertions(+), 6 deletions(-)

Index: strace-5.7/tests/io_uring_register.c
===================================================================
--- strace-5.7.orig/tests/io_uring_register.c	2020-11-09 04:44:38.311057254 +0100
+++ strace-5.7/tests/io_uring_register.c	2020-11-09 04:44:40.445038991 +0100
@@ -225,12 +225,12 @@
 	probe->ops[0].flags = 0;
 	probe->ops[0].resv2 = 0xbeefface;
 
-	probe->ops[1].op = 32;
+	probe->ops[1].op = 33;
 	probe->ops[1].resv = 0;
 	probe->ops[1].flags = IO_URING_OP_SUPPORTED;
 	probe->ops[1].resv2 = 0xdeadc0de;
 
-	probe->ops[2].op = 33;
+	probe->ops[2].op = 34;
 	probe->ops[2].resv = 0xaf;
 	probe->ops[2].flags = 0xbeef;
 	probe->ops[2].resv2 = 0;
@@ -245,22 +245,22 @@
 	       ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu"
 	       ", resv2=[0, %#x, 0], ops=["
 	       "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, "
-	       "{op=IORING_OP_REMOVE_BUFFERS, flags=IO_URING_OP_SUPPORTED"
+	       "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED"
 	       ", resv2=0xdeadc0de}, "
-	       "{op=33 /* IORING_OP_??? */, resv=0xaf"
+	       "{op=34 /* IORING_OP_??? */, resv=0xaf"
 	       ", flags=IO_URING_OP_SUPPORTED|0xbeee}, "
 	       "{op=254 /* IORING_OP_??? */"
 	       ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n",
 	       fd_null, path_null, probe->ops_len, probe->resv2[1], errstr);
 
-	probe->last_op = 33;
+	probe->last_op = 34;
 	probe->resv2[1] = 0;
 	fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1),
 		    0x40, 0x80);
 	sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe,
 			      DEFAULT_STRLEN + 1);
 	printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE"
-	       ", {last_op=33 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
+	       ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
 	       fd_null, path_null, probe->ops_len);
 	for (size_t i = 0; i < DEFAULT_STRLEN; i++) {
 		printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx"
Index: strace-5.7/xlat/uring_ops.in
===================================================================
--- strace-5.7.orig/xlat/uring_ops.in	2020-11-09 04:44:38.311057254 +0100
+++ strace-5.7/xlat/uring_ops.in	2020-11-09 04:44:40.445038991 +0100
@@ -32,3 +32,4 @@
 IORING_OP_SPLICE		30
 IORING_OP_PROVIDE_BUFFERS	31
 IORING_OP_REMOVE_BUFFERS	32
+IORING_OP_TEE			33
Index: strace-5.7/tests-m32/io_uring_register.c
===================================================================
--- strace-5.7.orig/tests-m32/io_uring_register.c	2020-11-09 04:44:38.312057246 +0100
+++ strace-5.7/tests-m32/io_uring_register.c	2020-11-09 04:44:40.445038991 +0100
@@ -225,12 +225,12 @@
 	probe->ops[0].flags = 0;
 	probe->ops[0].resv2 = 0xbeefface;
 
-	probe->ops[1].op = 32;
+	probe->ops[1].op = 33;
 	probe->ops[1].resv = 0;
 	probe->ops[1].flags = IO_URING_OP_SUPPORTED;
 	probe->ops[1].resv2 = 0xdeadc0de;
 
-	probe->ops[2].op = 33;
+	probe->ops[2].op = 34;
 	probe->ops[2].resv = 0xaf;
 	probe->ops[2].flags = 0xbeef;
 	probe->ops[2].resv2 = 0;
@@ -245,22 +245,22 @@
 	       ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu"
 	       ", resv2=[0, %#x, 0], ops=["
 	       "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, "
-	       "{op=IORING_OP_REMOVE_BUFFERS, flags=IO_URING_OP_SUPPORTED"
+	       "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED"
 	       ", resv2=0xdeadc0de}, "
-	       "{op=33 /* IORING_OP_??? */, resv=0xaf"
+	       "{op=34 /* IORING_OP_??? */, resv=0xaf"
 	       ", flags=IO_URING_OP_SUPPORTED|0xbeee}, "
 	       "{op=254 /* IORING_OP_??? */"
 	       ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n",
 	       fd_null, path_null, probe->ops_len, probe->resv2[1], errstr);
 
-	probe->last_op = 33;
+	probe->last_op = 34;
 	probe->resv2[1] = 0;
 	fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1),
 		    0x40, 0x80);
 	sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe,
 			      DEFAULT_STRLEN + 1);
 	printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE"
-	       ", {last_op=33 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
+	       ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
 	       fd_null, path_null, probe->ops_len);
 	for (size_t i = 0; i < DEFAULT_STRLEN; i++) {
 		printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx"
Index: strace-5.7/tests-mx32/io_uring_register.c
===================================================================
--- strace-5.7.orig/tests-mx32/io_uring_register.c	2020-11-09 04:44:38.312057246 +0100
+++ strace-5.7/tests-mx32/io_uring_register.c	2020-11-09 04:44:40.446038982 +0100
@@ -225,12 +225,12 @@
 	probe->ops[0].flags = 0;
 	probe->ops[0].resv2 = 0xbeefface;
 
-	probe->ops[1].op = 32;
+	probe->ops[1].op = 33;
 	probe->ops[1].resv = 0;
 	probe->ops[1].flags = IO_URING_OP_SUPPORTED;
 	probe->ops[1].resv2 = 0xdeadc0de;
 
-	probe->ops[2].op = 33;
+	probe->ops[2].op = 34;
 	probe->ops[2].resv = 0xaf;
 	probe->ops[2].flags = 0xbeef;
 	probe->ops[2].resv2 = 0;
@@ -245,22 +245,22 @@
 	       ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu"
 	       ", resv2=[0, %#x, 0], ops=["
 	       "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, "
-	       "{op=IORING_OP_REMOVE_BUFFERS, flags=IO_URING_OP_SUPPORTED"
+	       "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED"
 	       ", resv2=0xdeadc0de}, "
-	       "{op=33 /* IORING_OP_??? */, resv=0xaf"
+	       "{op=34 /* IORING_OP_??? */, resv=0xaf"
 	       ", flags=IO_URING_OP_SUPPORTED|0xbeee}, "
 	       "{op=254 /* IORING_OP_??? */"
 	       ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n",
 	       fd_null, path_null, probe->ops_len, probe->resv2[1], errstr);
 
-	probe->last_op = 33;
+	probe->last_op = 34;
 	probe->resv2[1] = 0;
 	fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1),
 		    0x40, 0x80);
 	sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe,
 			      DEFAULT_STRLEN + 1);
 	printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE"
-	       ", {last_op=33 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
+	       ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
 	       fd_null, path_null, probe->ops_len);
 	for (size_t i = 0; i < DEFAULT_STRLEN; i++) {
 		printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx"
Index: strace-5.7/xlat/uring_ops.h
===================================================================
--- strace-5.7.orig/xlat/uring_ops.h	2020-11-09 04:44:38.313057237 +0100
+++ strace-5.7/xlat/uring_ops.h	2020-11-09 04:47:01.835829135 +0100
@@ -234,6 +234,13 @@
 #else
 # define IORING_OP_REMOVE_BUFFERS 32
 #endif
+#if defined(IORING_OP_TEE) || (defined(HAVE_DECL_IORING_OP_TEE) && HAVE_DECL_IORING_OP_TEE)
+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
+static_assert((IORING_OP_TEE) == (33), "IORING_OP_TEE != 33");
+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
+#else
+# define IORING_OP_TEE 33
+#endif
 
 #ifndef XLAT_MACROS_ONLY
 
@@ -343,6 +350,9 @@
  [IORING_OP_REMOVE_BUFFERS] = XLAT(IORING_OP_REMOVE_BUFFERS),
  #define XLAT_VAL_32 ((unsigned) (IORING_OP_REMOVE_BUFFERS))
  #define XLAT_STR_32 STRINGIFY(IORING_OP_REMOVE_BUFFERS)
+ [IORING_OP_TEE] = XLAT(IORING_OP_TEE),
+ #define XLAT_VAL_33 ((unsigned) (IORING_OP_TEE))
+ #define XLAT_STR_33 STRINGIFY(IORING_OP_TEE)
 };
 static
 const struct xlat uring_ops[1] = { {
@@ -449,6 +459,9 @@
 #  ifdef XLAT_VAL_32
   | XLAT_VAL_32
 #  endif
+#  ifdef XLAT_VAL_33
+  | XLAT_VAL_33
+#  endif
   ,
  .flags_strsz = 0
 #  ifdef XLAT_STR_0
@@ -550,6 +563,9 @@
 #  ifdef XLAT_STR_32
   + sizeof(XLAT_STR_32)
 #  endif
+#  ifdef XLAT_STR_33
+  + sizeof(XLAT_STR_33)
+#  endif
   ,
 } };
 
@@ -619,6 +635,8 @@
 #  undef XLAT_VAL_31
 #  undef XLAT_STR_32
 #  undef XLAT_VAL_32
+#  undef XLAT_STR_33
+#  undef XLAT_VAL_33
 # endif /* !IN_MPERS */
 
 #endif /* !XLAT_MACROS_ONLY */