2 #define __EXPORTED_HEADERS__
4 #include <linux/membarrier.h>
5 #include <asm-generic/unistd.h>
6 #include <sys/syscall.h>
11 #include "../kselftest.h"
13 static int sys_membarrier(int cmd, int flags)
15 return syscall(__NR_membarrier, cmd, flags);
18 static void test_membarrier_fail(void)
20 int cmd = -1, flags = 0;
22 if (sys_membarrier(cmd, flags) != -1) {
23 printf("membarrier: Should fail but passed\n");
28 static void test_membarrier_success(void)
32 if (sys_membarrier(MEMBARRIER_CMD_SHARED, flags) != 0) {
33 printf("membarrier: Executing MEMBARRIER failed, %s\n",
38 printf("membarrier: MEMBARRIER_CMD_SHARED success\n");
41 static void test_membarrier(void)
43 test_membarrier_fail();
44 test_membarrier_success();
47 static int test_membarrier_exists(void)
51 if (sys_membarrier(MEMBARRIER_CMD_QUERY, flags))
57 int main(int argc, char **argv)
59 printf("membarrier: MEMBARRIER_CMD_QUERY ");
60 if (test_membarrier_exists()) {
61 printf("syscall implemented\n");
64 printf("syscall not implemented!\n");
65 return ksft_exit_fail();
68 printf("membarrier: tests done!\n");
70 return ksft_exit_pass();