]> granicus.if.org Git - strace/commitdiff
Update MEMBARRIER_CMD_* constants
authorDmitry V. Levin <ldv@altlinux.org>
Fri, 15 Sep 2017 16:06:14 +0000 (16:06 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 17 Sep 2017 12:04:11 +0000 (12:04 +0000)
* xlat/membarrier_cmds.in: Add MEMBARRIER_CMD_PRIVATE_EXPEDITED
introduced by kernel commit v4.14-rc1~174^2^2^4.
* NEWS: Mention this.
* tests/membarrier.c (main): Update expected output.

NEWS
tests/membarrier.c
xlat/membarrier_cmds.in

diff --git a/NEWS b/NEWS
index 617049455ffd2c40b8d720dacbc256b1e79d9089..7aee72c8bf3ae01cf057bbd4d574196486fdc6db 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,8 +2,8 @@ Noteworthy changes in release ?.?? (????-??-??)
 ===============================================
 
 * Improvements
-  * Updated lists of ARPHRD_*, BPF_*, ETH_P_*, MADV_*, MFD_*, SO_*, SOL_*,
-    TCP_*, and UFFD_FEATURE_* constants.
+  * Updated lists of ARPHRD_*, BPF_*, ETH_P_*, MADV_*, MEMBARRIER_CMD_*, MFD_*,
+    SO_*, SOL_*, TCP_*, and UFFD_FEATURE_* constants.
 
 Noteworthy changes in release 4.19 (2017-09-05)
 ===============================================
index 330893b6c2c23c0992d2b38abd84fdfd641cd4a6..7d79724ff50c6ec56393436800d225352fabe99d 100644 (file)
@@ -44,10 +44,23 @@ main(void)
        printf("membarrier(0x3 /* MEMBARRIER_CMD_??? */, 255) = %s\n",
               sprintrc(-1));
        if (saved_errno != ENOSYS) {
-               /* the test needs to be updated? */
-               assert(syscall(__NR_membarrier, 0, 0) == 1);
-               puts("membarrier(MEMBARRIER_CMD_QUERY, 0)"
-                    " = 0x1 (MEMBARRIER_CMD_SHARED)");
+               const char *text;
+               int rc = syscall(__NR_membarrier, 0, 0);
+
+               switch (rc) {
+               case 1:
+                       text = "MEMBARRIER_CMD_SHARED";
+                       break;
+               case 1|8:
+                       text = "MEMBARRIER_CMD_SHARED|"
+                              "MEMBARRIER_CMD_PRIVATE_EXPEDITED";
+                       break;
+               default:
+                       error_msg_and_fail("membarrier returned %#x, does"
+                                          " the test have to be updated?", rc);
+               }
+               printf("membarrier(MEMBARRIER_CMD_QUERY, 0) = %#x (%s)\n",
+                      rc, text);
        }
        puts("+++ exited with 0 +++");
        return 0;
index e087e8e3ce48863e00e403d2fe7ea30e905ad964..3baef17373693a8eacf87bb9dd9ce02d568a0001 100644 (file)
@@ -1,2 +1,3 @@
-MEMBARRIER_CMD_QUERY   0
-MEMBARRIER_CMD_SHARED  1
+MEMBARRIER_CMD_QUERY                   0
+MEMBARRIER_CMD_SHARED                  1
+MEMBARRIER_CMD_PRIVATE_EXPEDITED       8