From 4fd20207b7429a84194789a06e88e9df6c290b54 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Sun, 12 May 2019 22:45:45 +0000 Subject: [PATCH] Implement and use new parsers of io_getevents syscall * aio.c (SYS_FUNC(io_getevents)): Remove. [HAVE_ARCH_TIME32_SYSCALLS] (SYS_FUNC(io_getevents_time32)): New function. [HAVE_ARCH_OLD_TIME64_SYSCALLS] (SYS_FUNC(io_getevents_time64)): Likewise. * linux/64/syscallent.h: Replace SEN(io_getevents) with SEN(io_getevents_time64). * linux/alpha/syscallent.h: Likewise. * linux/ia64/syscallent.h: Likewise. * linux/mips/syscallent-n64.h: Likewise. * linux/powerpc64/syscallent.h: Likewise. * linux/s390x/syscallent.h: Likewise. * linux/sh64/syscallent.h: Likewise. * linux/sparc64/syscallent.h: Likewise. * linux/x32/syscallent.h: Likewise. * linux/x86_64/syscallent.h: Likewise. * linux/32/syscallent.h: Replace SEN(io_getevents) with SEN(io_getevents_time32). * linux/arm/syscallent.h: Likewise. * linux/avr32/syscallent.h: Likewise. * linux/bfin/syscallent.h: Likewise. * linux/hppa/syscallent.h: Likewise. * linux/i386/syscallent.h: Likewise. * linux/m68k/syscallent.h: Likewise. * linux/microblaze/syscallent.h: Likewise. * linux/mips/syscallent-n32.h: Likewise. * linux/mips/syscallent-o32.h: Likewise. * linux/powerpc/syscallent.h: Likewise. * linux/s390/syscallent.h: Likewise. * linux/sh/syscallent.h: Likewise. * linux/sparc/syscallent.h: Likewise. * linux/xtensa/syscallent.h: Likewise. --- aio.c | 13 +++++++++++-- linux/32/syscallent.h | 2 +- linux/64/syscallent.h | 2 +- linux/alpha/syscallent.h | 2 +- linux/arm/syscallent.h | 2 +- linux/avr32/syscallent.h | 2 +- linux/bfin/syscallent.h | 2 +- linux/hppa/syscallent.h | 2 +- linux/i386/syscallent.h | 2 +- linux/ia64/syscallent.h | 2 +- linux/m68k/syscallent.h | 2 +- linux/microblaze/syscallent.h | 2 +- linux/mips/syscallent-n32.h | 2 +- linux/mips/syscallent-n64.h | 2 +- linux/mips/syscallent-o32.h | 2 +- linux/powerpc/syscallent.h | 2 +- linux/powerpc64/syscallent.h | 2 +- linux/s390/syscallent.h | 2 +- linux/s390x/syscallent.h | 2 +- linux/sh/syscallent.h | 2 +- linux/sh64/syscallent.h | 2 +- linux/sparc/syscallent.h | 2 +- linux/sparc64/syscallent.h | 2 +- linux/x32/syscallent.h | 2 +- linux/x86_64/syscallent.h | 2 +- linux/xtensa/syscallent.h | 2 +- 26 files changed, 36 insertions(+), 27 deletions(-) diff --git a/aio.c b/aio.c index 7cc5f219..cc16b531 100644 --- a/aio.c +++ b/aio.c @@ -246,10 +246,19 @@ print_io_getevents(struct tcb *const tcp, const print_obj_by_addr_fn print_ts, return 0; } -SYS_FUNC(io_getevents) +#if HAVE_ARCH_TIME32_SYSCALLS +SYS_FUNC(io_getevents_time32) { - return print_io_getevents(tcp, print_timespec, false); + return print_io_getevents(tcp, print_timespec32, false); } +#endif + +#if HAVE_ARCH_OLD_TIME64_SYSCALLS +SYS_FUNC(io_getevents_time64) +{ + return print_io_getevents(tcp, print_timespec64, false); +} +#endif SYS_FUNC(io_pgetevents) { diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h index 04370f5b..511a0024 100644 --- a/linux/32/syscallent.h +++ b/linux/32/syscallent.h @@ -12,7 +12,7 @@ [ 1] = { 1, TM, SEN(io_destroy), "io_destroy" }, [ 2] = { 3, 0, SEN(io_submit), "io_submit" }, [ 3] = { 3, 0, SEN(io_cancel), "io_cancel" }, -[ 4] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[ 4] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [ 5] = { 5, TF, SEN(setxattr), "setxattr" }, [ 6] = { 5, TF, SEN(setxattr), "lsetxattr" }, [ 7] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h index f56821ef..b89d28e9 100644 --- a/linux/64/syscallent.h +++ b/linux/64/syscallent.h @@ -9,7 +9,7 @@ [ 1] = { 1, TM, SEN(io_destroy), "io_destroy" }, [ 2] = { 3, 0, SEN(io_submit), "io_submit" }, [ 3] = { 3, 0, SEN(io_cancel), "io_cancel" }, -[ 4] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[ 4] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, [ 5] = { 5, TF, SEN(setxattr), "setxattr" }, [ 6] = { 5, TF, SEN(setxattr), "lsetxattr" }, [ 7] = { 5, TD, SEN(fsetxattr), "fsetxattr" }, diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h index 2ced0b98..5fe0635e 100644 --- a/linux/alpha/syscallent.h +++ b/linux/alpha/syscallent.h @@ -344,7 +344,7 @@ [397] = { 5, 0, SEN(tuxcall), "tuxcall" }, /* not implemented */ [398] = { 2, TM, SEN(io_setup), "io_setup" }, [399] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[400] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[400] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, [401] = { 3, 0, SEN(io_submit), "io_submit" }, [402] = { 3, 0, SEN(io_cancel), "io_cancel" }, [403 ... 404] = { }, diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h index 32562bc2..5e13ff26 100644 --- a/linux/arm/syscallent.h +++ b/linux/arm/syscallent.h @@ -252,7 +252,7 @@ [242] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, [243] = { 2, TM, SEN(io_setup), "io_setup" }, [244] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[245] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[245] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [246] = { 3, 0, SEN(io_submit), "io_submit" }, [247] = { 3, 0, SEN(io_cancel), "io_cancel" }, [248] = { 1, TP|SE, SEN(exit), "exit_group" }, diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h index 10ba93a9..c2269772 100644 --- a/linux/avr32/syscallent.h +++ b/linux/avr32/syscallent.h @@ -205,7 +205,7 @@ [196] = { 2, 0, SEN(capset), "capset" }, [197] = { 2, TM, SEN(io_setup), "io_setup" }, [198] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[199] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[199] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [200] = { 3, 0, SEN(io_submit), "io_submit" }, [201] = { 3, 0, SEN(io_cancel), "io_cancel" }, [202] = { 5, TD, SEN(fadvise64), "fadvise64" }, diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h index 9ef73a86..5a103298 100644 --- a/linux/bfin/syscallent.h +++ b/linux/bfin/syscallent.h @@ -253,7 +253,7 @@ [244] = { 1, 0, SEN(get_thread_area), "get_thread_area" }, [245] = { 2, TM, SEN(io_setup), "io_setup" }, [246] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[247] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[247] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [248] = { 3, 0, SEN(io_submit), "io_submit" }, [249] = { 3, 0, SEN(io_cancel), "io_cancel" }, [250] = { 5, 0, SEN(printargs), "alloc_hugepages" }, diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h index f2ff13ae..263341fc 100644 --- a/linux/hppa/syscallent.h +++ b/linux/hppa/syscallent.h @@ -220,7 +220,7 @@ [214] = { 5, 0, SEN(printargs), "get_thread_area" }, [215] = { 2, TM, SEN(io_setup), "io_setup" }, [216] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[217] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[217] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [218] = { 3, 0, SEN(io_submit), "io_submit" }, [219] = { 3, 0, SEN(io_cancel), "io_cancel" }, [220] = { 5, 0, SEN(printargs), "alloc_hugepages" }, diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h index a142c3d4..3cd88547 100644 --- a/linux/i386/syscallent.h +++ b/linux/i386/syscallent.h @@ -253,7 +253,7 @@ [244] = { 1, 0, SEN(get_thread_area), "get_thread_area" }, [245] = { 2, TM, SEN(io_setup), "io_setup" }, [246] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[247] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[247] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [248] = { 3, 0, SEN(io_submit), "io_submit" }, [249] = { 3, 0, SEN(io_cancel), "io_cancel" }, [250] = { 5, TD, SEN(fadvise64), "fadvise64" }, diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h index 1d3f5eab..046fafbb 100644 --- a/linux/ia64/syscallent.h +++ b/linux/ia64/syscallent.h @@ -223,7 +223,7 @@ [1024 + 213] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" }, [1024 + 214] = { 2, TM, SEN(io_setup), "io_setup" }, [1024 + 215] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[1024 + 216] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[1024 + 216] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, [1024 + 217] = { 3, 0, SEN(io_submit), "io_submit" }, [1024 + 218] = { 3, 0, SEN(io_cancel), "io_cancel" }, [1024 + 219] = { 1, TD, SEN(epoll_create), "epoll_create" }, diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h index b24c8748..d0e00534 100644 --- a/linux/m68k/syscallent.h +++ b/linux/m68k/syscallent.h @@ -249,7 +249,7 @@ [240] = { 4, TD, SEN(readahead), "readahead" }, [241] = { 2, TM, SEN(io_setup), "io_setup" }, [242] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[243] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[243] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [244] = { 3, 0, SEN(io_submit), "io_submit" }, [245] = { 3, 0, SEN(io_cancel), "io_cancel" }, [246] = { 5, TD, SEN(fadvise64), "fadvise64" }, diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h index 36373aa5..8f5ec503 100644 --- a/linux/microblaze/syscallent.h +++ b/linux/microblaze/syscallent.h @@ -253,7 +253,7 @@ [244] = { 1, 0, SEN(get_thread_area), "get_thread_area" }, [245] = { 2, TM, SEN(io_setup), "io_setup" }, [246] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[247] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[247] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [248] = { 3, 0, SEN(io_submit), "io_submit" }, [249] = { 3, 0, SEN(io_cancel), "io_cancel" }, [250] = { 5, TD, SEN(fadvise64), "fadvise64" }, diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h index 30062933..00fb2051 100644 --- a/linux/mips/syscallent-n32.h +++ b/linux/mips/syscallent-n32.h @@ -209,7 +209,7 @@ [6199] = { 4, 0, SEN(sysmips), "sysmips" }, [6200] = { 2, TM, SEN(io_setup), "io_setup" }, [6201] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[6202] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[6202] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [6203] = { 3, 0, SEN(io_submit), "io_submit" }, [6204] = { 3, 0, SEN(io_cancel), "io_cancel" }, [6205] = { 1, TP|SE, SEN(exit), "exit_group" }, diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h index c429ae5a..4f950d6c 100644 --- a/linux/mips/syscallent-n64.h +++ b/linux/mips/syscallent-n64.h @@ -209,7 +209,7 @@ [5199] = { 4, 0, SEN(sysmips), "sysmips" }, [5200] = { 2, TM, SEN(io_setup), "io_setup" }, [5201] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[5202] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[5202] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, [5203] = { 3, 0, SEN(io_submit), "io_submit" }, [5204] = { 3, 0, SEN(io_cancel), "io_cancel" }, [5205] = { 1, TP|SE, SEN(exit), "exit_group" }, diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h index 249d1bed..f2476985 100644 --- a/linux/mips/syscallent-o32.h +++ b/linux/mips/syscallent-o32.h @@ -251,7 +251,7 @@ [4240] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" }, [4241] = { 2, TM, SEN(io_setup), "io_setup" }, [4242] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[4243] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[4243] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [4244] = { 3, 0, SEN(io_submit), "io_submit" }, [4245] = { 3, 0, SEN(io_cancel), "io_cancel" }, [4246] = { 1, TP|SE, SEN(exit), "exit_group" }, diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h index c1f187a0..2e8fa1ea 100644 --- a/linux/powerpc/syscallent.h +++ b/linux/powerpc/syscallent.h @@ -236,7 +236,7 @@ [226] = { 4, TD|TN, SEN(sendfile64), "sendfile64" }, [227] = { 2, TM, SEN(io_setup), "io_setup" }, [228] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[229] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[229] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [230] = { 3, 0, SEN(io_submit), "io_submit" }, [231] = { 3, 0, SEN(io_cancel), "io_cancel" }, [232] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h index 3c613313..62e125eb 100644 --- a/linux/powerpc64/syscallent.h +++ b/linux/powerpc64/syscallent.h @@ -231,7 +231,7 @@ [226] = { }, [227] = { 2, TM, SEN(io_setup), "io_setup" }, [228] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[229] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[229] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, [230] = { 3, 0, SEN(io_submit), "io_submit" }, [231] = { 3, 0, SEN(io_cancel), "io_cancel" }, [232] = { 1, 0, SEN(set_tid_address), "set_tid_address" }, diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h index 49c56c42..c5e01d01 100644 --- a/linux/s390/syscallent.h +++ b/linux/s390/syscallent.h @@ -254,7 +254,7 @@ [242] = { }, [243] = { 2, TM, SEN(io_setup), "io_setup" }, [244] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[245] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[245] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [246] = { 3, 0, SEN(io_submit), "io_submit" }, [247] = { 3, 0, SEN(io_cancel), "io_cancel" }, [248] = { 1, TP|SE, SEN(exit), "exit_group" }, diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h index b5875743..b7d20c7f 100644 --- a/linux/s390x/syscallent.h +++ b/linux/s390x/syscallent.h @@ -238,7 +238,7 @@ [242] = { }, [243] = { 2, TM, SEN(io_setup), "io_setup" }, [244] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[245] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[245] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, [246] = { 3, 0, SEN(io_submit), "io_submit" }, [247] = { 3, 0, SEN(io_cancel), "io_cancel" }, [248] = { 1, TP|SE, SEN(exit), "exit_group" }, diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h index 2d88da22..d626c9e9 100644 --- a/linux/sh/syscallent.h +++ b/linux/sh/syscallent.h @@ -253,7 +253,7 @@ [243 ... 244] = { }, [245] = { 2, TM, SEN(io_setup), "io_setup" }, [246] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[247] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[247] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [248] = { 3, 0, SEN(io_submit), "io_submit" }, [249] = { 3, 0, SEN(io_cancel), "io_cancel" }, [250] = { 5, TD, SEN(fadvise64), "fadvise64" }, diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h index 7ce2c408..ea75d14a 100644 --- a/linux/sh64/syscallent.h +++ b/linux/sh64/syscallent.h @@ -279,7 +279,7 @@ [271 ... 272] = { }, [273] = { 2, TM, SEN(io_setup), "io_setup" }, [274] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[275] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[275] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, [276] = { 3, 0, SEN(io_submit), "io_submit" }, [277] = { 3, 0, SEN(io_cancel), "io_cancel" }, [278] = { 4, TD, SEN(fadvise64), "fadvise64" }, diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h index 1669f62f..4f98dbca 100644 --- a/linux/sparc/syscallent.h +++ b/linux/sparc/syscallent.h @@ -277,7 +277,7 @@ [269] = { 1, TM, SEN(io_destroy), "io_destroy" }, [270] = { 3, 0, SEN(io_submit), "io_submit" }, [271] = { 3, 0, SEN(io_cancel), "io_cancel" }, -[272] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[272] = { 5, 0, SEN(io_getevents_time32), "io_getevents" }, [273] = { 4, TD, SEN(mq_open), "mq_open" }, [274] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, [275] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" }, diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h index 2836380e..3ac74c55 100644 --- a/linux/sparc64/syscallent.h +++ b/linux/sparc64/syscallent.h @@ -275,7 +275,7 @@ [269] = { 1, TM, SEN(io_destroy), "io_destroy" }, [270] = { 3, 0, SEN(io_submit), "io_submit" }, [271] = { 3, 0, SEN(io_cancel), "io_cancel" }, -[272] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[272] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, [273] = { 4, TD, SEN(mq_open), "mq_open" }, [274] = { 1, 0, SEN(mq_unlink), "mq_unlink" }, [275] = { 5, TD, SEN(mq_timedsend), "mq_timedsend" }, diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h index 5f44c082..bca6ca11 100644 --- a/linux/x32/syscallent.h +++ b/linux/x32/syscallent.h @@ -213,7 +213,7 @@ [205] = { 1, 0, SEN(printargs), "set_thread_area#64" }, [206] = { 2, TM, SEN(printargs), "io_setup#64" }, [207] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[208] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[208] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, [209] = { 3, 0, SEN(printargs), "io_submit#64" }, [210] = { 3, 0, SEN(io_cancel), "io_cancel" }, [211] = { 1, 0, SEN(printargs), "get_thread_area#64" }, diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h index 1e4f25e7..2d0568d7 100644 --- a/linux/x86_64/syscallent.h +++ b/linux/x86_64/syscallent.h @@ -213,7 +213,7 @@ [205] = { 1, 0, SEN(set_thread_area), "set_thread_area" }, [206] = { 2, TM, SEN(io_setup), "io_setup" }, [207] = { 1, TM, SEN(io_destroy), "io_destroy" }, -[208] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[208] = { 5, 0, SEN(io_getevents_time64), "io_getevents" }, [209] = { 3, 0, SEN(io_submit), "io_submit" }, [210] = { 3, 0, SEN(io_cancel), "io_cancel" }, [211] = { 1, 0, SEN(get_thread_area), "get_thread_area" }, diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h index 18ee0219..9f2034ce 100644 --- a/linux/xtensa/syscallent.h +++ b/linux/xtensa/syscallent.h @@ -239,7 +239,7 @@ [239] = { 2, TM, SEN(io_setup), "io_setup" }, [240] = { 1, TM, SEN(io_destroy), "io_destroy" }, [241] = { 3, 0, SEN(io_submit), "io_submit" }, -[242] = { 5, 0, SEN(io_getevents), "io_getevents" }, +[242] = { 5, 0, SEN(io_getevents_time32), "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" }, -- 2.40.0