===============================================
* 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)
===============================================
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;