2 * Check decoding of s390_runtime_instr syscall.
4 * Copyright (c) 2018 The strace developers.
7 * SPDX-License-Identifier: GPL-2.0-or-later
11 #include <asm/unistd.h>
13 #if defined __NR_s390_runtime_instr
27 { 0, "0 /* S390_RUNTIME_INSTR_??? */" },
28 { 4, "4 /* S390_RUNTIME_INSTR_??? */" },
29 { (kernel_ulong_t) 0xdeafbeefdeadc0deULL,
30 "-559038242 /* S390_RUNTIME_INSTR_??? */" },
31 { 2, "S390_RUNTIME_INSTR_STOP" },
37 } start_sig_args[] = {
39 { (kernel_ulong_t) 0xfacefeedac0ffeedULL, NULL },
48 for (i = 0; i < ARRAY_SIZE(cmd_args); i++) {
49 rc = syscall(__NR_s390_runtime_instr, cmd_args[i].cmd, 0xdead);
50 printf("s390_runtime_instr(%s) = %s\n",
51 cmd_args[i].cmd_str, sprintrc(rc));
54 for (i = 0; i < ARRAY_SIZE(start_sig_args); i++) {
57 rc = syscall(__NR_s390_runtime_instr, 1, start_sig_args[i].sig);
59 printf("s390_runtime_instr(S390_RUNTIME_INSTR_START, ");
61 if (start_sig_args[i].sig_str)
62 printf("%s", start_sig_args[i].sig_str);
64 printf("%d", (int) start_sig_args[i].sig);
67 printf(") = %s\n", sprintrc(rc));
70 puts("+++ exited with 0 +++");
76 SKIP_MAIN_UNDEFINED("__NR_s390_runtime_instr")