]> granicus.if.org Git - strace/commitdiff
Implement -e trace=%clock option
authorRishi Bhatt <bhatt.rishi062@gmail.com>
Mon, 27 Mar 2017 22:01:24 +0000 (03:31 +0530)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 6 Apr 2017 22:47:09 +0000 (22:47 +0000)
linux/*/syscallent.h part is modified automatically by
sed -i 's/0\(,[[:space:]]*SEN(clock_\)/TCL\1/' linux/*/syscallent*.h

[ldv: rewritten clock.test using sched.test as a template]

* sysent.h (TRACE_CLOCK): New macro.
* syscall.c: Alias TCL to TRACE_CLOCK around syscallent.h inclusion.
* qualify.c (lookup_class): Add TRACE_CLOCK for "%clock".
* strace.1 (.SS Filtering): Add information about %clock syscall class.
* NEWS: Mention this change.
* linux/32/syscallent.h: Add TCL flag for clock_* syscalls.
* linux/64/syscallent.h: Likewise.
* linux/alpha/syscallent.h: Likewise.
* linux/arm/syscallent.h: Likewise.
* linux/avr32/syscallent.h: Likewise.
* linux/bfin/syscallent.h: Likewise.
* linux/crisv10/syscallent.h: Likewise.
* linux/hppa/syscallent.h: Likewise.
* linux/i386/syscallent.h: Likewise.
* linux/ia64/syscallent.h: Likewise.
* linux/m68k/syscallent.h: Likewise.
* linux/microblaze/syscallent.h: Likewise.
* linux/mips/syscallent-n32.h: Likewise.
* linux/mips/syscallent-n64.h: Likewise.
* linux/mips/syscallent-o32.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/powerpc64/syscallent.h: Likewise.
* linux/s390/syscallent.h: Likewise.
* linux/s390x/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/sh64/syscallent.h: Likewise.
* linux/sparc/syscallent.h: Likewise.
* linux/sparc64/syscallent.h: Likewise.
* linux/x32/syscallent.h: Likewise.
* linux/x86_64/syscallent.h: Likewise.
* linux/xtensa/syscallent.h: Likewise.
* tests/clock.test: New test.
* tests/Makefile.am (DECODER_TESTS): Add it.
* tests/ksysent.c (TCL): New macro, defined to 0.
* tests/nsyscalls.c: Likewise.

35 files changed:
NEWS
linux/32/syscallent.h
linux/64/syscallent.h
linux/alpha/syscallent.h
linux/arm/syscallent.h
linux/avr32/syscallent.h
linux/bfin/syscallent.h
linux/crisv10/syscallent.h
linux/hppa/syscallent.h
linux/i386/syscallent.h
linux/ia64/syscallent.h
linux/m68k/syscallent.h
linux/microblaze/syscallent.h
linux/mips/syscallent-n32.h
linux/mips/syscallent-n64.h
linux/mips/syscallent-o32.h
linux/powerpc/syscallent.h
linux/powerpc64/syscallent.h
linux/s390/syscallent.h
linux/s390x/syscallent.h
linux/sh/syscallent.h
linux/sh64/syscallent.h
linux/sparc/syscallent.h
linux/sparc64/syscallent.h
linux/x32/syscallent.h
linux/x86_64/syscallent.h
linux/xtensa/syscallent.h
qualify.c
strace.1
syscall.c
sysent.h
tests/Makefile.am
tests/clock.test [new file with mode: 0755]
tests/ksysent.c
tests/nsyscalls.c

diff --git a/NEWS b/NEWS
index 5e0941f62e065c5a371727516f9ef2d758740d93..18d217ec9ff4f15f51cd4d225ce50564c65018e1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ Noteworthy changes in release ?.?? (????-??-??)
 * Improvements
   * Enhanced decoding of sched_setattr syscall.
   * Added -e trace=%sched option for tracing sched_* syscalls.
+  * Added -e trace=%clock option for tracing clock_* syscalls.
   * Implemented decoding of signal mask in rt_sigreturn syscall on alpha, arc,
     arm, avr32, bfin, cris, hppa, m68k, metag, microblaze, mips, nios2, or1k,
     powerpc, powerpc64, riscv, sh, sh64, sparc, sparc64, tile, x86, and xtensa
index a8f95107571b30253403ac5c5d72202eeb349c5c..236ac10e524c30a431210517a0b2729dcc814fad 100644 (file)
 [109] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [110] = { 4,   0,              SEN(timer_settime),             "timer_settime"         },
 [111] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[112] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[113] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[114] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[115] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[112] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[113] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[114] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[115] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [116] = { 3,   0,              SEN(syslog),                    "syslog"                },
 [117] = { 4,   0,              SEN(ptrace),                    "ptrace"                },
 [118] = { 2,   TSC,            SEN(sched_setparam),            "sched_setparam"        },
 [263] = { 6,   TD|TF,          SEN(fanotify_mark),             "fanotify_mark"         },
 [264] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [265] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[266] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[266] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [267] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [268] = { 2,   TD,             SEN(setns),                     "setns"                 },
 [269] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
index b5a09d4f111f493fe32808b1d5fa3a29c32de8ae..e263bb012d7c9f532bff2052568067e0a70c4228 100644 (file)
 [109] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [110] = { 4,   0,              SEN(timer_settime),             "timer_settime"         },
 [111] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[112] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[113] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[114] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[115] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[112] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[113] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[114] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[115] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [116] = { 3,   0,              SEN(syslog),                    "syslog"                },
 [117] = { 4,   0,              SEN(ptrace),                    "ptrace"                },
 [118] = { 2,   TSC,            SEN(sched_setparam),            "sched_setparam"        },
 [263] = { 5,   TD|TF,          SEN(fanotify_mark),             "fanotify_mark"         },
 [264] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [265] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[266] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[266] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [267] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [268] = { 2,   TD,             SEN(setns),                     "setns"                 },
 [269] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
index e1b6933b462f0b6c26b2d0f12ecaca0c2c4909af..8a427308c9038057fb07d80b8eb4274b7eb69dce 100644 (file)
 [416] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [417] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [418] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[419] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[420] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[421] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[422] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[419] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[420] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[421] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[422] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [423] = { 4,   TI,             SEN(semtimedop),                "semtimedop"            },
 [424] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [425] = { 2,   TF,             SEN(stat64),                    "stat64"                },
 [496] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [497] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [498] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[499] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[499] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [500] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [501] = { 2,   TD,             SEN(setns),                     "setns"                 },
 [502] = { 4,   TN,             SEN(accept4),                   "accept4"               },
index ed9ec9adbdfe6ebcf895921cac16f49e74362800..6444e4ff89a6b7bfbb58a699e3d278cf095a4b8b 100644 (file)
 [259] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [260] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [261] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[262] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[263] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[264] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[265] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[262] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[263] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[264] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[265] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [266] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [267] = { 3,   TD,             SEN(fstatfs64),                 "fstatfs64"             },
 [268] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [369] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [370] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [371] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[372] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[372] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [373] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [374] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [375] = { 2,   TD,             SEN(setns),                     "setns"                 },
index 7f50934beab74e9561deb28c088a148551264910..84e409d193d977ce639843af6970806e34079615 100644 (file)
 [212] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [213] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [214] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[215] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[216] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[217] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[218] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[215] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[216] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[217] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[218] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [219] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [220] = { 3,   TD,             SEN(fstatfs64),                 "fstatfs64"             },
 [221] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [303] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [304] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [305] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[306] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[306] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [307] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [308] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [309] = { 6,   0,              SEN(process_vm_readv),          "process_vm_readv"      },
index 800b943b6aa1b17c56269dd27260936a17101b76..83e49c2021d5359fc15fc676a476ac9854c8c7c1 100644 (file)
 [262] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [263] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [264] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[265] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[266] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[267] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[268] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[265] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[266] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[267] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[268] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [269] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [270] = { 3,   TD,             SEN(fstatfs64),                 "fstatfs64"             },
 [271] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [374] = { 3,   0,              SEN(cacheflush),                "cacheflush"            },
 [375] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [376] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[377] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[377] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [378] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [379] = { 2,   TD,             SEN(setns),                     "setns"                 },
 [380] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
index 96fb6bd05558a0eefc6b43c8e317fd1c13d18ab2..a66792d0d343d21a1402afc2fae63b543b9780d2 100644 (file)
 [261] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [262] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [263] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[264] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[265] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[266] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[267] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[264] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[265] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[266] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[267] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [268] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [269] = { 3,   TD,             SEN(fstatfs64),                 "fstatfs64"             },
 [270] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [342] = { 2,   TD,             SEN(fanotify_init),             "fanotify_init"         },
 [343] = { 6,   TD|TF,          SEN(fanotify_mark),             "fanotify_mark"         },
 [344] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
-[345] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[345] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [346] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [347] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [348] = { 6,   0,              SEN(process_vm_readv),          "process_vm_readv"      },
index f59ea57145a6ec03955de210b1c18e51148e3de7..f95944d254450ca34044d8be3dd346e852497ec6 100644 (file)
 [252] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [253] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [254] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[255] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[256] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[257] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[258] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[255] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[256] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[257] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[258] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [259] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [260] = { 6,   TM,             SEN(mbind),                     "mbind"                 },
 [261] = { 5,   TM,             SEN(get_mempolicy),             "get_mempolicy"         },
 [321] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [322] = { 2,   TD,             SEN(fanotify_init),             "fanotify_init"         },
 [323] = { 6,   TD|TF,          SEN(fanotify_mark),             "fanotify_mark"         },
-[324] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[324] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [325] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [326] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
 [327] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
index 84c5bdecbece91884aaf872991d7fcffca235e10..7966eb1df9e36e3926748666135c878c52803655 100644 (file)
 [261] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [262] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [263] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[264] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[265] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[266] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[267] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[264] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[265] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[266] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[267] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [268] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [269] = { 3,   TD,             SEN(fstatfs64),                 "fstatfs64"             },
 [270] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [340] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [341] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [342] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[343] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[343] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [344] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [345] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [346] = { 2,   TD,             SEN(setns),                     "setns"                 },
index 47b71d6ade56add0d157b39d56eaf94a68873a68..c226bc6ee971b15a3a19a334b14acced308d03a5 100644 (file)
 [1250] = { 2,  0,              SEN(timer_gettime),             "timer_gettime"         },
 [1251] = { 1,  0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [1252] = { 1,  0,              SEN(timer_delete),              "timer_delete"          },
-[1253] = { 2,  0,              SEN(clock_settime),             "clock_settime"         },
-[1254] = { 2,  0,              SEN(clock_gettime),             "clock_gettime"         },
-[1255] = { 2,  0,              SEN(clock_getres),              "clock_getres"          },
-[1256] = { 4,  0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[1253] = { 2,  TCL,            SEN(clock_settime),             "clock_settime"         },
+[1254] = { 2,  TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[1255] = { 2,  TCL,            SEN(clock_getres),              "clock_getres"          },
+[1256] = { 4,  TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [1257] = { 3,  TD,             SEN(fstatfs64),                 "fstatfs64"             },
 [1258] = { 3,  TF,             SEN(statfs64),                  "statfs64"              },
 [1259] = { 6,  TM,             SEN(mbind),                     "mbind"                 },
 [1325] = { 4,  0,              SEN(prlimit64),                 "prlimit64"             },
 [1326] = { 5,  TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [1327] = { 3,  TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[1328] = { 2,  0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[1328] = { 2,  TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [1329] = { 1,  TD,             SEN(syncfs),                    "syncfs"                },
 [1330] = { 2,  TD,             SEN(setns),                     "setns"                 },
 [1331] = { 4,  TN,             SEN(sendmmsg),                  "sendmmsg"              },
index 8e7dd97d34f4ec779b225a4c53ec6e1564f2bde0..0364ab970399058f7953a1a724ab9cedca25c836 100644 (file)
 [256] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [257] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [258] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[259] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[260] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[261] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[262] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[259] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[260] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[261] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[262] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [263] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [264] = { 3,   TD,             SEN(fstatfs64),                 "fstatfs64"             },
 [265] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [339] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [340] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [341] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[342] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[342] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [343] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [344] = { 2,   TD,             SEN(setns),                     "setns"                 },
 [345] = { 6,   0,              SEN(process_vm_readv),          "process_vm_readv"      },
index 2a59eb3dccbfc8aba16383c37f146798526e759e..e7cb98c5a7bf98b652856d821841e200df06367e 100644 (file)
 [261] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [262] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [263] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[264] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[265] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[266] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[267] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[264] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[265] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[266] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[267] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [268] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [269] = { 3,   TD,             SEN(fstatfs64),                 "fstatfs64"             },
 [270] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [370] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [371] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [372] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[373] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[373] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [374] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [375] = { 2,   TD,             SEN(setns),                     "setns"                 },
 [376] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
index 052af4fa4f6123637da327308eec378b80ee265c..bce788fbcde1c1f1edbb40b98fe57b0dd268cda9 100644 (file)
 [6222] = { 2,  0,              SEN(timer_gettime),             "timer_gettime"         },
 [6223] = { 1,  0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [6224] = { 1,  0,              SEN(timer_delete),              "timer_delete"          },
-[6225] = { 2,  0,              SEN(clock_settime),             "clock_settime"         },
-[6226] = { 2,  0,              SEN(clock_gettime),             "clock_gettime"         },
-[6227] = { 2,  0,              SEN(clock_getres),              "clock_getres"          },
-[6228] = { 4,  0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[6225] = { 2,  TCL,            SEN(clock_settime),             "clock_settime"         },
+[6226] = { 2,  TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[6227] = { 2,  TCL,            SEN(clock_getres),              "clock_getres"          },
+[6228] = { 4,  TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [6229] = { 3,  TS,             SEN(tgkill),                    "tgkill"                },
 [6230] = { 2,  TF,             SEN(utimes),                    "utimes"                },
 [6231] = { 6,  TM,             SEN(mbind),                     "mbind"                 },
 [6302] = { 4,  0,              SEN(prlimit64),                 "prlimit64"             },
 [6303] = { 5,  TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [6304] = { 3,  TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[6305] = { 2,  0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[6305] = { 2,  TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [6306] = { 1,  TD,             SEN(syncfs),                    "syncfs"                },
 [6307] = { 4,  TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [6308] = { 2,  TD,             SEN(setns),                     "setns"                 },
index fdd778b4ca2cd211b7b6dff3cb1423871e8b3cb3..37c20240cbbc501d9b81c19880cbd28036c5e1cc 100644 (file)
 [5218] = { 2,  0,              SEN(timer_gettime),             "timer_gettime"         },
 [5219] = { 1,  0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [5220] = { 1,  0,              SEN(timer_delete),              "timer_delete"          },
-[5221] = { 2,  0,              SEN(clock_settime),             "clock_settime"         },
-[5222] = { 2,  0,              SEN(clock_gettime),             "clock_gettime"         },
-[5223] = { 2,  0,              SEN(clock_getres),              "clock_getres"          },
-[5224] = { 4,  0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[5221] = { 2,  TCL,            SEN(clock_settime),             "clock_settime"         },
+[5222] = { 2,  TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[5223] = { 2,  TCL,            SEN(clock_getres),              "clock_getres"          },
+[5224] = { 4,  TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [5225] = { 3,  TS,             SEN(tgkill),                    "tgkill"                },
 [5226] = { 2,  TF,             SEN(utimes),                    "utimes"                },
 [5227] = { 6,  TM,             SEN(mbind),                     "mbind"                 },
 [5297] = { 4,  0,              SEN(prlimit64),                 "prlimit64"             },
 [5298] = { 5,  TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [5299] = { 3,  TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[5300] = { 2,  0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[5300] = { 2,  TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [5301] = { 1,  TD,             SEN(syncfs),                    "syncfs"                },
 [5302] = { 4,  TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [5303] = { 2,  TD,             SEN(setns),                     "setns"                 },
index 509a719a86f0c7182cf099e3653868c872e28e18..4e5797ea2fe8d86e219a59fedd6e651c5580b0c2 100644 (file)
 [4259] = { 2,  0,              SEN(timer_gettime),             "timer_gettime"         },
 [4260] = { 1,  0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [4261] = { 1,  0,              SEN(timer_delete),              "timer_delete"          },
-[4262] = { 2,  0,              SEN(clock_settime),             "clock_settime"         },
-[4263] = { 2,  0,              SEN(clock_gettime),             "clock_gettime"         },
-[4264] = { 2,  0,              SEN(clock_getres),              "clock_getres"          },
-[4265] = { 4,  0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[4262] = { 2,  TCL,            SEN(clock_settime),             "clock_settime"         },
+[4263] = { 2,  TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[4264] = { 2,  TCL,            SEN(clock_getres),              "clock_getres"          },
+[4265] = { 4,  TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [4266] = { 3,  TS,             SEN(tgkill),                    "tgkill"                },
 [4267] = { 2,  TF,             SEN(utimes),                    "utimes"                },
 [4268] = { 6,  TM,             SEN(mbind),                     "mbind"                 },
 [4338] = { 4,  0,              SEN(prlimit64),                 "prlimit64"             },
 [4339] = { 5,  TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [4340] = { 3,  TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[4341] = { 2,  0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[4341] = { 2,  TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [4342] = { 1,  TD,             SEN(syncfs),                    "syncfs"                },
 [4343] = { 4,  TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [4344] = { 2,  TD,             SEN(setns),                     "setns"                 },
index 1431f8a97a4096d810e57e74a8b81a2a8393864e..86e3a3f6e21f8ae1da566c7629fd5ca8b88d91bc 100644 (file)
 [242] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [243] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [244] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[245] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[246] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[247] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[248] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[245] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[246] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[247] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[248] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [249] = { 2,   0,              SEN(printargs),                 "swapcontext"           },
 [250] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [251] = { 2,   TF,             SEN(utimes),                    "utimes"                },
 [344] = { 4,   TN,             SEN(accept4),                   "accept4"               },
 [345] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [346] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[347] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[347] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [348] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [349] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [350] = { 2,   TD,             SEN(setns),                     "setns"                 },
index eae3b57bdb9d651c6840fcb1ad3ba6641344a108..77f91fa6e4f4b29de0c2e57d4cce2c4a1e092917 100644 (file)
 [242] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [243] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [244] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[245] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[246] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[247] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[248] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[245] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[246] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[247] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[248] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [249] = { 2,   0,              SEN(printargs),                 "swapcontext"           },
 [250] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [251] = { 2,   TF,             SEN(utimes),                    "utimes"                },
 [344] = { 4,   TN,             SEN(accept4),                   "accept4"               },
 [345] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [346] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[347] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[347] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [348] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [349] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [350] = { 2,   TD,             SEN(setns),                     "setns"                 },
index 105e511e56811dc1025ef94c82b8f5d6b270f7fe..3b5dc5b07d4b1a658c5c377fa450505277d4a007 100644 (file)
 [256] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [257] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [258] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[259] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[260] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[261] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[262] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[259] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[260] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[261] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[262] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [263] = { 5,   0,              SEN(vserver),                   "vserver"               },
 [264] = { 6,   TD,             SEN(fadvise64_64),              "fadvise64_64"          },
 [265] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [334] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [335] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [336] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[337] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[337] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [338] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [339] = { 2,   TD,             SEN(setns),                     "setns"                 },
 [340] = { 6,   0,              SEN(process_vm_readv),          "process_vm_readv"      },
index d5b54590011f0e250f6129c7073abebd12f384c0..0e82385ac4f1ec96f036c695ee8e57dda03db2d6 100644 (file)
 [256] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [257] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [258] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[259] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[260] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[261] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[262] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[259] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[260] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[261] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[262] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [263] = { 5,   0,              SEN(vserver),                   "vserver"               },
 [264] = { },
 [265] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [334] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [335] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [336] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[337] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[337] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [338] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [339] = { 2,   TD,             SEN(setns),                     "setns"                 },
 [340] = { 6,   0,              SEN(process_vm_readv),          "process_vm_readv"      },
index 138841691a1727285a2cda0af36d12dbd9141277..92ec42246b08cbb24809807f5179d35e07f3446d 100644 (file)
 [261] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [262] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [263] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[264] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[265] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[266] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[267] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[264] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[265] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[266] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[267] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [268] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [269] = { 3,   TD,             SEN(fstatfs64),                 "fstatfs64"             },
 [270] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [358] = { 4,   TN,             SEN(accept4),                   "accept4"               },
 [359] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [360] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[361] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[361] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [362] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [363] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [364] = { 2,   TD,             SEN(setns),                     "setns"                 },
index e935104809daa54de7bf5bc4535f9b81aa06fb51..cf64fe4edb1880e9e857f3278f303c36b14f5d77 100644 (file)
 [289] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [290] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [291] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[292] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[293] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[294] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[295] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[292] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[293] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[294] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[295] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [296] = { 3,   TF,             SEN(statfs64),                  "statfs64"              },
 [297] = { 3,   TD,             SEN(fstatfs64),                 "fstatfs64"             },
 [298] = { 3,   TS,             SEN(tgkill),                    "tgkill"                },
 [369] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [370] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [371] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[372] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[372] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [373] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [374] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [375] = { 2,   TD,             SEN(setns),                     "setns"                 },
index 30d88193bdf13d49e88a2b3516c54be0e66fde61..3c3c94629c5a24f9cb891df05d83c18b29336a93 100644 (file)
 [253] = { 1,   TD,             SEN(fdatasync),                 "fdatasync"             },
 [254] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [255] = { 6,   TD,             SEN(sync_file_range),           "sync_file_range"       },
-[256] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[257] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[258] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[259] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[256] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[257] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[258] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[259] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [260] = { 3,   TSC,            SEN(sched_getaffinity),         "sched_getaffinity"     },
 [261] = { 3,   TSC,            SEN(sched_setaffinity),         "sched_setaffinity"     },
 [262] = { 4,   0,              SEN(timer_settime),             "timer_settime"         },
 [331] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [332] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [333] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[334] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[334] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [335] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [336] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [337] = { 2,   TD,             SEN(setns),                     "setns"                 },
index 1137a3e5bf6fc2af45c30f95c1591388dfef9014..be6a3d9916756e05b82dd372ec66c0d375181b28 100644 (file)
 [253] = { 1,   TD,             SEN(fdatasync),                 "fdatasync"             },
 [254] = { 3,   0,              SEN(nfsservctl),                "nfsservctl"            },
 [255] = { 4,   TD,             SEN(sync_file_range),           "sync_file_range"       },
-[256] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[257] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[258] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[259] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[256] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[257] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[258] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[259] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [260] = { 3,   TSC,            SEN(sched_getaffinity),         "sched_getaffinity"     },
 [261] = { 3,   TSC,            SEN(sched_setaffinity),         "sched_setaffinity"     },
 [262] = { 4,   0,              SEN(timer_settime),             "timer_settime"         },
 [331] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [332] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [333] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[334] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[334] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [335] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [336] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [337] = { 2,   TD,             SEN(setns),                     "setns"                 },
index 60bda375f1c0c5d02a8df3c44e6ae8b8d6e489db..f8be3253a41cc4e8e67831ba9b196a1df71607b3 100644 (file)
 [224] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [225] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [226] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[227] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[228] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[229] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[230] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[227] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[228] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[229] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[230] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [231] = { 1,   TP|SE,          SEN(exit),                      "exit_group"            },
 [232] = { 4,   TD,             SEN(epoll_wait),                "epoll_wait"            },
 [233] = { 4,   TD,             SEN(epoll_ctl),                 "epoll_ctl"             },
 [302] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [303] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [304] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[305] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[305] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [306] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [307] = { 4,   TN,             SEN(printargs),                 "64:sendmmsg"           },
 [308] = { 2,   TD,             SEN(setns),                     "setns"                 },
index 73165b8809af276644fdcaa2bc1a8bc680860a76..2aa20bd93ec07b5910c9ddb7f81ba19e311e7e08 100644 (file)
 [224] = { 2,   0,              SEN(timer_gettime),             "timer_gettime"         },
 [225] = { 1,   0,              SEN(timer_getoverrun),          "timer_getoverrun"      },
 [226] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
-[227] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[228] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[229] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[230] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[227] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[228] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[229] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[230] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [231] = { 1,   TP|SE,          SEN(exit),                      "exit_group"            },
 [232] = { 4,   TD,             SEN(epoll_wait),                "epoll_wait"            },
 [233] = { 4,   TD,             SEN(epoll_ctl),                 "epoll_ctl"             },
 [302] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [303] = { 5,   TD|TF,          SEN(name_to_handle_at),         "name_to_handle_at"     },
 [304] = { 3,   TD,             SEN(open_by_handle_at),         "open_by_handle_at"     },
-[305] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[305] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [306] = { 1,   TD,             SEN(syncfs),                    "syncfs"                },
 [307] = { 4,   TN,             SEN(sendmmsg),                  "sendmmsg"              },
 [308] = { 2,   TD,             SEN(setns),                     "setns"                 },
index 63995bc2fcdff69ae0b9f6e7eabc653534197c26..21dea9fd3470078dde072c29991754ac3014c490 100644 (file)
 [241] = { 3,   0,              SEN(io_submit),                 "io_submit"             },
 [242] = { 5,   0,              SEN(io_getevents),              "io_getevents"          },
 [243] = { 3,   0,              SEN(io_cancel),                 "io_cancel"             },
-[244] = { 2,   0,              SEN(clock_settime),             "clock_settime"         },
-[245] = { 2,   0,              SEN(clock_gettime),             "clock_gettime"         },
-[246] = { 2,   0,              SEN(clock_getres),              "clock_getres"          },
-[247] = { 4,   0,              SEN(clock_nanosleep),           "clock_nanosleep"       },
+[244] = { 2,   TCL,            SEN(clock_settime),             "clock_settime"         },
+[245] = { 2,   TCL,            SEN(clock_gettime),             "clock_gettime"         },
+[246] = { 2,   TCL,            SEN(clock_getres),              "clock_getres"          },
+[247] = { 4,   TCL,            SEN(clock_nanosleep),           "clock_nanosleep"       },
 [248] = { 3,   0,              SEN(timer_create),              "timer_create"          },
 [249] = { 1,   0,              SEN(timer_delete),              "timer_delete"          },
 [250] = { 4,   0,              SEN(timer_settime),             "timer_settime"         },
 [326] = { 6,   TD,             SEN(sync_file_range2),          "sync_file_range2"      },
 [327] = { 5,   TD,             SEN(perf_event_open),           "perf_event_open"       },
 [328] = { 4,   TP|TS,          SEN(rt_tgsigqueueinfo),         "rt_tgsigqueueinfo"     },
-[329] = { 2,   0,              SEN(clock_adjtime),             "clock_adjtime"         },
+[329] = { 2,   TCL,            SEN(clock_adjtime),             "clock_adjtime"         },
 [330] = { 4,   0,              SEN(prlimit64),                 "prlimit64"             },
 [331] = { 5,   0,              SEN(kcmp),                      "kcmp"                  },
 [332] = { 3,   TD,             SEN(finit_module),              "finit_module"          },
index b5023f210d98623a145626cbd0003c55f766120b..6ab3033913b3d7461f0ac4820498946669376609 100644 (file)
--- a/qualify.c
+++ b/qualify.c
@@ -220,6 +220,7 @@ lookup_class(const char *s)
                { "%ipc",       TRACE_IPC       },
                { "%network",   TRACE_NETWORK   },
                { "%sched",     TRACE_SCHED     },
+               { "%clock",     TRACE_CLOCK     },
        };
 
        unsigned int i;
index 9b69ec22910f1a61b5c0e063501ca371e0d117b2..0c0f1a7ab50494287e0544fa7473c6a3bd096264 100644 (file)
--- a/strace.1
+++ b/strace.1
@@ -429,6 +429,9 @@ Trace all memory mapping related system calls.
 .BR "\-e\ trace" = %sched
 Trace all scheduler-related (sched_*) system calls.
 .TP
+.BR "\-e\ trace" = %clock
+Trace all clock-related (clock_*) system calls.
+.TP
 \fB\-e\ abbrev\fR=\,\fIset\fR
 Abbreviate the output from printing each member of large structures.
 The default is
index 569055f2f9a905c1526cd9d3728a951544d21734..5ca46d1e26b76f10d99d949a85d5f22010c05d46 100644 (file)
--- a/syscall.c
+++ b/syscall.c
@@ -77,6 +77,7 @@
 #define TS TRACE_SIGNAL
 #define TM TRACE_MEMORY
 #define TSC TRACE_SCHED
+#define TCL TRACE_CLOCK
 #define NF SYSCALL_NEVER_FAILS
 #define MA MAX_ARGS
 #define SI STACKTRACE_INVALIDATE_CACHE
@@ -113,6 +114,7 @@ static const struct_sysent sysent2[] = {
 #undef TS
 #undef TM
 #undef TSC
+#undef TCL
 #undef NF
 #undef MA
 #undef SI
index f4eaa930a455e69386ca3364cf72bfbce762a2f9..53a4a0a843c7286fac6c75620f58b57673134126 100644 (file)
--- a/sysent.h
+++ b/sysent.h
@@ -22,5 +22,6 @@ typedef struct sysent {
 #define TRACE_INDIRECT_SUBCALL 02000   /* Syscall is an indirect socket/ipc subcall. */
 #define COMPAT_SYSCALL_TYPES   04000   /* A compat syscall that uses compat types. */
 #define TRACE_SCHED            010000  /* Trace scheduler-related syscalls. */
+#define TRACE_CLOCK            020000  /* Trace clock-related syscalls. */
 
 #endif /* !STRACE_SYSENT_H */
index 4bdd79e9b06644791675bdf4086f17991a823032..a1b4d9df35684e5a9baaa23d52a00207a2f11fa3 100644 (file)
@@ -492,6 +492,7 @@ DECODER_TESTS = \
        btrfs-w.test \
        caps-abbrev.test \
        caps.test \
+       clock.test \
        eventfd.test \
        execve-v.test \
        execve.test \
diff --git a/tests/clock.test b/tests/clock.test
new file mode 100755 (executable)
index 0000000..f2e5b77
--- /dev/null
@@ -0,0 +1,51 @@
+#!/bin/sh
+#
+# Check -e trace=%clock option.
+#
+# Copyright (c) 2017 The strace developers.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. The name of the author may not be used to endorse or promote products
+#    derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+. "${srcdir=.}/init.sh"
+
+while read w s; do {
+       try_run_prog "../$s" || continue
+       run_strace -a$w -e%clock ../$s > "$EXP"
+       match_diff "$LOG" "$EXP"
+} < /dev/null; done << EOF
+37 clock_adjtime
+40 clock_nanosleep
+36 clock_xettime
+EOF
+
+# Surprised that fcntl*, futimesat, utime, utimensat, and utimes tests
+# linked with musl use clock_gettime?  Me too!
+grep -E -v '^(#|clock_|times$|fcntl|futimesat$|utime)' \
+       < "$srcdir/pure_executables.list" > negative.list
+
+while read s; do {
+       try_run_prog "../$s" || continue
+       run_strace -qq -esignal=none -e%clock ../$s > /dev/null
+       match_diff "$LOG" /dev/null
+} < /dev/null; done < negative.list
index 252feffc6ee03978f70dd8fa9ab914adb98b1203..724136925e5a0f44c29ea87a48d5b91b6c51f596 100644 (file)
@@ -41,6 +41,7 @@
 #define TS 0
 #define TM 0
 #define TSC 0
+#define TCL 0
 #define NF 0
 #define MA 0
 #define SI 0
index c2bdb2028354dc0553221fbb4478f21580359c1b..1094389888e016190f54dc4f40e03ffc1e58d4a2 100644 (file)
@@ -42,6 +42,7 @@
 #define TS 0
 #define TM 0
 #define TSC 0
+#define TCL 0
 #define NF 0
 #define MA 0
 #define SI 0